private static void ReadCallBack(IAsyncResult iar) { IoState state = iar.AsyncState as IoState; int NumOfBytesRead = 0; try { NumOfBytesRead = state.EndRead(iar); if (NumOfBytesRead > 0) { NumOfBytesRead = state.ReadData(NumOfBytesRead); byte[] buffer = new byte[NumOfBytesRead]; Array.Copy(state.GetBuffer(), buffer, NumOfBytesRead); state.mHeader.MessageReceived(state, buffer); state.BeginRead(); } else { state.mHeader.ConnectClosed(state.GetPID(), state.GetSID()); //连接断开 } } catch (Exception ex) { System.Diagnostics.Debug.WriteLine(ex.Message); state.mHeader.ConnectClosed(state.GetPID(), state.GetSID()); //连接断开 } }