[英]how to write/send a specific number of bytes to a socket totally but not partially?
我想給套接字寫一個特定的字節數,
n=write(sock_fd, buf, len);
如果n<len
,我寧願沒有字節寫入套接字,是否可能? 謝謝!
如果套接字處於阻塞模式,那么,正如EJP(+1)所說, write()將不會返回,直到len字節已寫入套接字的傳出緩沖區。
但是,重要的是要注意,這並不能告訴您在連接的接收端收到了多少字節。 事實上,當write()返回時,對於len的小值,根本沒有發送任何數據。 當另一端調用read()時 ,它將阻塞,直到某些數據到達,但不一定是len字節。 如果你想讀取len字節,那么你可能必須繼續調用read()直到你得到它們。
知道實際發生了什么以及何時完成的唯一真正方法是從套接字的另一端返回某種消息,說現在一切都已到達。 來自write()的確認回報本身是不夠的。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.