套接字编程send()返回值



在linux或windows套接字编程中

我知道read返回一个值,该值表示已成功接收字节数。

此返回值可能小于请求的长度。(即,如果接收缓冲区,则read(sd,buf,100)可能返回50只有50个字节)

有可能吗

send(sd, buf, 100);

返回一个介于1~99??之间的值??如果是的话,在什么场合?我想知道具体的例子情况。

提前感谢

有关正式规范,请参阅man页面,如果您正在谈论Winsock,请参阅MSDN文档。

实践中,send()在阻塞模式下发送所有数据,无论文档中说什么,除非出现错误,在这种情况下什么都不发送。

在非阻塞模式下,它发送任何适合套接字发送缓冲区的内容,并在>0时返回该长度。如果套接字发送缓冲区已满,则返回-1,错误号为EWOULDBLOCK/EAGAIN

最新更新