NetServer是一个网络通信模块,基于CompletionPort实现,适用于服务器端。它在VC下实现,可以直接在VC环境下使用,也可以通过DllImport在.Net环境下使用。
它实现的功能如下:


1


2

3

4

5



6


7

8

9

10

11

12


13

14

15

16

17

18

19

20


21

22

23

24

25

26

27


28

29

30

31

32

33


34

35

36

37

38

39

40


41

42

43

44

45

46

47


48

49

50

51

52

53

54


55

56

57

58

59

60

61


62

63

64

65

66

67

68


69

70

71

72

73

74

75


76

77

78

79

80

81


82

83

84

85

86

87

88


89

90

91

92

93

94

95

96

97


98

99

100

101

102

103

104


105

106

107

108

109

110

111


112

113

114

115

116

117

118


119

120

121

122

123

124

125


126

127

128

129

130

131

132


133

134

135

136

137

138

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