在linux或windows套接字编程中
我知道read返回一个值,该值表示已成功接收字节数。
此返回值可能小于请求的长度。(即,如果接收缓冲区,则read(sd,buf,100)可能返回50只有50个字节)
有可能吗
send(sd, buf, 100);
返回一个介于1~99??之间的值??如果是的话,在什么场合?我想知道具体的例子情况。
提前感谢
有关正式规范,请参阅man
页面,如果您正在谈论Winsock,请参阅MSDN文档。
在实践中,send()
在阻塞模式下发送所有数据,无论文档中说什么,除非出现错误,在这种情况下什么都不发送。
在非阻塞模式下,它发送任何适合套接字发送缓冲区的内容,并在>0时返回该长度。如果套接字发送缓冲区已满,则返回-1,错误号为EWOULDBLOCK/EAGAIN
。