说到Socket通信, 必须要有个服务端, 打开一个端口进行监听(废话!) 可能大家都会把socket.Accept方法放在一个while(true)的循环里, 当然也没有错, 但个人认为这个不科学, 极大可能地占用服务资源. 赞成的请举手. 所以我想从另外一个方面解决这个问题.
不多说, 接下来贴代码, 这个实例中需要用到几个类: 1. BufferManager类, 管理传输流的大小 原封不动地拷贝过来, 2. SocketEventPool类: 管理SocketAsyncEventArgs的一个应用池. 有效地重复使用. 3. AsyncUserToken类: 这个可以根据自己的实际情况来定义.主要作用就是存储客户端的信息. 4. SocketManager类: 核心,实现Socket监听,收发信息等操作.
|