2 l108103t l108103t 于 2016.03.16 16:47 提问

如何确保tcp的数据已经成功发送到了目的地

当用tcp协议发送数据时,write函数只是确保把数据写到了socket的套接字缓冲区之中,
然后write函数就返回了。如果说最终socket没有成功发送数据,怎么办?会有什么提示吗?
比如说发个信号什么的??

3个回答

caozhy
caozhy   Ds   Rxr 2016.03.16 18:16

tcp不需要,因为握手成功肯定是建立连接的,你socket发送数据肯定能收到,否则会丢出错误。

luochoudan
luochoudan   Ds   Rxr 2016.03.16 17:12

两个不是一个东西,tcp保证你连接,socket传数据。如果因为连接导致发送失败,有异常抛出。

wtucsjianghua
wtucsjianghua   2016.03.16 18:00

tcp协议确保了两个应用程序之间的连接;socket负责发数据包,如果tcp连接失败,数据包是发不出去的(程序会异常),tcp连接成功,数据包能发送,但对方不一定能接受(与传输时的网络拥堵情况有关系),有丢包或者漏包的情况,要想保证对方能正确接受,你要用代码去控制,确保每个包都能接受,没接到的包要求重传

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!