/// <summary> /// 处理接受到的tcp服务器数据 /// </summary> /// <param name="e"></param> private void ProcessReceive(SocketAsyncEventArgs e) { AsyncUserToken token = (AsyncUserToken)e.UserToken; if (e.BytesTransferred > 0 && e.SocketError == SocketError.Success) { if (recvMessageEvent != null) { //一定要指定GetString的长度,否则整个bugger都要转成string recvMessageEvent(Encoding.UTF8.GetString(e.Buffer, 0, e.BytesTransferred)); } StartRecv(); } else { Restart(); } }
/// <summary> /// 处理tcp客户端发送的结果 /// </summary> /// <param name="e"></param> private void ProcessSend(SocketAsyncEventArgs e) { AsyncUserToken token = (AsyncUserToken)e.UserToken; if (e.SocketError == SocketError.Success) { if (sendResultEvent != null) { sendResultEvent(e.BytesTransferred); } } else { if (sendResultEvent != null) { sendResultEvent(-1); } Restart(); } }