Ejemplo n.º 1
0
        /// <summary>
        /// 接收信息回调函数
        /// </summary>
        /// <param name="iar"></param>
        /// <date>2017-07-17</date>
        /// <author>冯旗</author>
        private void ReadCallBack(IAsyncResult iar)
        {
            //try
            //{
            // 读取操作后后获取服务器返回信息
            DataRead dataRead = (DataRead)iar.AsyncState;
            // 读取接收信息结束
            int    recv = dataRead.ns.EndRead(iar);
            string d    = Encoding.UTF8.GetString(dataRead.msg, 0, recv);

            DataArriveEvent(d);

            dataRead = new DataRead(ns, client.ReceiveBufferSize);
            ns.BeginRead(dataRead.msg, 0, dataRead.msg.Length, ReadCallBack, dataRead);

            //}
            //catch (Exception e)
            //{
            //    OnClientError(e.Message);
            //    return;
            //}
        }
Ejemplo n.º 2
0
        /// <summary>
        /// 当完成network连接后异步回调的函数
        /// </summary>
        /// <param name="ip"></param>
        /// <date>2017-07-17</date>
        /// <author>冯旗</author>
        private void ConnectCallBack(IAsyncResult iar)
        {
            allDone.Set();
            try
            {
                // 完成连接动作后服务器返回的信息
                client = (TcpClient)iar.AsyncState;
                // 异步接收传入连接尝试
                client.EndConnect(iar);
                ns = client.GetStream();
                DataRead dataRead = new DataRead(ns, client.ReceiveBufferSize);
                // 异步读取
                ns.BeginRead(dataRead.msg, 0, dataRead.msg.Length, ReadCallBack, dataRead);

                OnConnectSuccess("Connecting OK");
            }
            catch (Exception e)
            {
                OnConnectFailed(e.Message);
                return;
            }
        }