Socket编程发送()返回值

在linux下,或者windows套接字编程

我知道读取返回一个值,它表示成功接收的字节数。

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

这有可能吗?

send(sd, buf, 100); 

返回1〜99之间的值 如果是的话,现在是什么时候? 我想知道具体的例子情况。

先谢谢你

Solutions Collecting From Web of "Socket编程发送()返回值"

请参阅man页或MSDN文档,如果您正在讨论Winsock的官方规范。

实际上,在阻塞模式下 send()发送所有的数据,不管文档说什么,除非有错误,在这种情况下,什么都不发送。

在非阻塞模式下,它将发送任何适合套接字发送缓冲区的内容,如果大于0,则返回该长度。如果套接字发送缓冲区已满,则返回-1,其中errno = EWOULDBLOCK/EAGAIN