Пример #1
0
        /// <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();
            }
        }
Пример #2
0
        /// <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();
            }
        }