当前位置: 技术问答>linux和unix
socket send的返回值
来源: 互联网 发布时间:2017-03-14
本文导语: 虽然看到很多文章,但是没有确定 send返回的数值是发送到客服端并且在tcp层得到确认之后的值吗? 还是send的返回值只是发送到client的内核缓冲区的可用空间里面之后,就返回了 还有就是,这个数值是否受非阻塞O...
虽然看到很多文章,但是没有确定
send返回的数值是发送到客服端并且在tcp层得到确认之后的值吗?
还是send的返回值只是发送到client的内核缓冲区的可用空间里面之后,就返回了
还有就是,这个数值是否受非阻塞O_NONBLOCK,异步O_ASYNC socket操作的影响,具体怎么影响的那
期待高人解答啊
send返回的数值是发送到客服端并且在tcp层得到确认之后的值吗?
还是send的返回值只是发送到client的内核缓冲区的可用空间里面之后,就返回了
还有就是,这个数值是否受非阻塞O_NONBLOCK,异步O_ASYNC socket操作的影响,具体怎么影响的那
期待高人解答啊
|
没研究那么深入
send的返回值就认为是成功发送到对方的字节数目
socket的发送变得可用,就是缓冲区有剩余空间,允许发送新的数据。
socket的接受变得可用,就是缓冲区有数据,允许读取
send的返回值就认为是成功发送到对方的字节数目
socket的发送变得可用,就是缓冲区有剩余空间,允许发送新的数据。
socket的接受变得可用,就是缓冲区有数据,允许读取
|
send()的返回值是成功把数据发送到目的机器的字节数(我不是很确定,也许是把数据放入到TCP/IP协议栈的发送队列)。建议看看书或者send的函数的实现。
有3年时间没怎么写应用程序了,:)。
|
仅仅是写到发送缓冲区成功与否而已。(发送缓冲区满了就写不了啦)
照你这么说UDP里面该咋办?
照你这么说UDP里面该咋办?
|
可能因为网络的原因
部分数据先期到达了,那recv就只返回这部分数据
部分数据先期到达了,那recv就只返回这部分数据