0、下面的介绍偏重于客户端。
1、服务器端一般采用循环Receive(),当Receive()返回为0时,可能是客户端断线了。
2、客户端一般采用定时发心跳包的方式,服务器端可以不用回复。
3、服务器端网络断掉,客户端的Socket实例将变为null。
(4、5针对客户端有接收线程的情况,假定接收线程函数为RecvWork())
4、当服务器退出或者是结束进程时,RecvWork会出现远程主机强制关闭现有连接的异常。
5、当客户端断网时,RecvWork会出现远程主机强制关闭现有连接的异常。
C# 保持Socket连接的问题,布布扣,bubuko.com
原文:http://www.cnblogs.com/yidaimu/p/3611000.html