我想向套接字写入特定数量的字节,
n=write(sock_fd, buf, len);
如果n<len
,我宁愿没有字节被写入套接字,这可能吗?谢谢!
我想向套接字写入特定数量的字节,
n=write(sock_fd, buf, len);
如果n<len
,我宁愿没有字节被写入套接字,这可能吗?谢谢!
如果套接字处于阻塞模式,那么正如 EJP (+1) 所说,write()将不会返回,直到len个字节被写入套接字的传出缓冲区。
但是,重要的是要注意,这并不能告诉您在连接的接收端已接收到多少字节。事实上,当write()返回时, len的小值根本没有发送任何数据(还)。当另一端调用read()时,它将阻塞,直到一些数据到达,但不一定是len个字节。如果你想读取len个字节,那么你可能不得不继续调用read()直到你把它们全部读完。
要知道实际发生了什么以及何时完成,唯一真正的方法是从套接字的另一端返回某种消息,说明现在一切都已到达。write()的确认返回本身是不够的。