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