Dav*_*fer 8 c# sockets tcpclient
将NetworkStream.Write
只阻塞,直到它把要发送到TCP发送缓冲区中的数据,还是会阻塞,直到数据实际上是由接收主机ACK'd?
注意:套接字配置为阻止I/O.
编辑:哎呀,TcpClient.Write
当然没有这样的事情!我们都明白我们在谈论TcpClient.GetStream().Write
,实际上NetworkStream.Write
!
除非.net使用的不是winsock,否则根据winsock参考:
成功完成发送功能并不表示数据已成功发送并接收到收件人.此功能仅表示数据已成功发送.
如果传输系统中没有可用的缓冲区空间来保存要传输的数据,则发送将阻止,除非套接字已置于非阻塞模式.在非阻塞流定向套接字上,写入的字节数可以在1和请求的长度之间,具体取决于客户端和服务器计算机上的缓冲区可用性.
假设write在下面调用send,那么对winsock文档的严格解释将表明没有保证数据在返回时将数据传递到管道的另一端.
以下是我引用的winsock文档的链接:http://msdn.microsoft.com/en-us/library/windows/desktop/ms741416( v = VS.85) .aspx
归档时间: |
|
查看次数: |
2547 次 |
最近记录: |