Windows操作系统中集成了对很多套接字I/O模型的支持,特别从NT开始加入了完成端口(Completion Port)模型。如果应用程序需要同时管理大量的客户端套接字,采用这种模型可以达到最佳的系统性能,所以就想用完成端口来封装一个网络通信模块。
网络通信模块应该作为一个基础模块来为CS间的交互而服务,那么作为该功能模块的Client而言,希望该功能模块提供了哪些方法呢?
1、SetParameter(...); //port,backlog,max connections etc
2、StartUp();
3、Stop();
4、CallBackSomeConnected; //CallBack when some connected;
5、Receive(...); //Post a receive request;
6、CallBackDataReceived; //CallBack when received data;
7、Send(...); //Post a send request;
8、CallBackDataSent; //CallBack when sent data
9、CallBackSomeDisconnected; //CallBack when some disconnected;
10、ShutDown(Socket sock); //Shut down the connection to which you want;
只是一般性的应用的话,这些应该就够了吧。在VC的环境下把它封好,发布成DLL,在Win32或者.Net托管环境下都可以使用。