/// <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; //} }
/// <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; } }