使用WSAEventSelect模型:如下:
服务器端:
1、在一个监听线程里,同时监听多个端口,如何主动关闭某一个正在监听的socket?
2、如何强制关闭一个客户端的连接?转:当程序关闭的时候.有一个辅助线程有还有一个Socket 在listening ,请问如何结束它而不造成内存泄漏
方法1:其实最简单的办法就是在程序退出的时候调用WSACleanup();就得了。WinSock会自动收回申请的资源
方法2:在监听的函数recv里面自己设定。比如收到"[exit]"这样的字符,就调用AfxEndThread或者直接return结束线程自身
方法3:我用的是 WSAEventSelect,本来等几个 WSAEVENT 就可以了,结果我多加一个 WSAEVENT,而这个 WSAEVENT 和网络                事件无关,仅仅只在主程序想结束该辅助线程时被传信,那么主程序结束时,传信该 WSAEVENT,辅助线程那边 
WSAEventSelect 就有动静了,然后就可以自己收尾退出了。 
方法4:同时检测网络事件(FD_ACCEPT)(m_hNetEvent)和线程关闭事件(m_hExitEvent),如果是m_hExitEvent, 就结束线程想用方法3,但要是一个socket设置一个辅助WSAEVENT的和话,我是多个监听socket,难道要设置多个辅助WSAEVENT,那一个线程最多也就监听32个socket了?