Jak*_*nes 5 .net c# sockets network-programming
我正在编写一个C#.NET服务器应用程序,通过套接字发送和接收数据,如果客户端应用程序崩溃而没有正确关闭套接字,我会遇到一些问题.
我已将'receive timeout'设置为给定值,并且我希望Socket.Receive()在该时间量之后抛出异常.但是该方法只返回0.
所以我的问题是:如果Socket.Receive()返回0 ,套接字是否仍然可以打开?或者我可以安全地假设它已经关闭了吗?
(可能有点难以理解.如果是这样,请在评论中告诉我)
jga*_*fin 13
不.如果你收到0就会失败.
来自MSDN:
如果远程主机使用Shutdown方法关闭Socket连接,并且已收到所有可用数据,则Receive方法将立即完成并返回零字节.
http://msdn.microsoft.com/en-us/library/8s4y8aff.aspx
| 归档时间: |
|
| 查看次数: |
5895 次 |
| 最近记录: |