守护线程
在服务端版Socket编程需要处理长时间没有发送数据的Socket,需要在超时多长时间后断开连接,我们需要独立一个线程(DaemonThread)来轮询,在执行断开时,需要把Socket对象锁定,并调用CloseClientSocket来断开连接,具体处理代码如下:
namespace SocketAsyncSvr { class DaemonThread : Object { private Thread m_thread; private AsyncSocketServer m_asyncSocketServer; public DaemonThread(AsyncSocketServer asyncSocketServer) { m_asyncSocketServer = asyncSocketServer; m_thread = new Thread(DaemonThreadStart); m_thread.Start(); } public void DaemonThreadStart() { while (m_thread.IsAlive) { AsyncSocketUserToken[] userTokenArray = null; m_asyncSocketServer.AsyncSocketUserTokenList.CopyList(ref userTokenArray);