コード例 #1
0
ファイル: IoState.cs プロジェクト: zhaodaocai/NetToSerial
        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()); //连接断开
            }
        }
コード例 #2
0
 public void ConnectOpened(IoState state)
 {
     lock (mIoStates)
     {
         mIoStates.Add(state.GetSID(), state);
     }
     mHeader.ConnectOpened(state);
 }