public void ProcessReceive(SocketAsyncEventArgs e) { UserToken token = e.UserToken as UserToken; // 判断网络消息接收是否成功 if (token.receiveSAEA.BytesTransferred > 0 && token.receiveSAEA.SocketError == SocketError.Success) { byte[] message = new byte[token.receiveSAEA.BytesTransferred]; // 将网络消息拷贝到自定义数组 Buffer.BlockCopy(token.receiveSAEA.Buffer, 0, message, 0, token.receiveSAEA.BytesTransferred); // 处理接收到的消息 token.receive(message); StartReceive(token); } else { if (token.receiveSAEA.SocketError != SocketError.Success) { ClientClose(token, token.receiveSAEA.SocketError.ToString()); } else { ClientClose(token, "客户端主动断开连接"); } } }