NetServer是一个网络通信模块,基于CompletionPort实现,适用于服务器端。它在VC下实现,可以直接在VC环境下使用,也可以通过DllImport在.Net环境下使用。
它实现的功能如下:
其中在.Net环境下使用时要注意两点:
1、 在指定自定义的委托实例时,需要用成员变量来保存委托实例。使用局部或临时变量来保存委托实例的话,变量在其作用域外就会被垃圾回收,这样当它异步回调委托时就会报错。
2、 读取接收到的数据时,需要把数据从非托管的内存拷贝到托管的内存,具体请见:C++ Dll回调C#方法。
它开放了一些设置的接口,但是一般情况下使用其默认配置即可。所以一般情况下,其调用顺序为:
SetAcceptConnectFP、SetDataReceivedFP、SetDataSentFP、SetHandleDisconnectFP、SetListenPort à StartUp à Receive、Send、ShutDown、IsStartUp à Stop。