コード例 #1
0
ファイル: SimplePosConn.cs プロジェクト: HappyLL/learnSocket
        private void RecMsgCb(IAsyncResult ret)
        {
            SimplePosConn conn = (SimplePosConn)ret.AsyncState;

            if (conn == null)
            {
                Console.WriteLine("The Conn is Null");
                return;
            }
            try
            {
                int ind   = 0;
                int count = conn.PosConnSocket.EndReceive(ret);
                conn.ByteCount = count;

                String s = System.Text.Encoding.Default.GetString(conn.GetContent(), ind, count);
                //回调发送
                if (m_fSMsg != null)
                {
                    m_fSMsg(s, conn);
                }
                else
                {
                    Console.WriteLine("The CB Is Null");
                }
            }
            catch (Exception e)
            {
                Console.WriteLine(e.ToString());
            }

            conn.SPConnStart();
        }
コード例 #2
0
		private void AcceptConnCb(IAsyncResult ret)
		{
			Socket sk = m_socket.EndAccept (ret);
			SimplePosConn conn = NewSPConn ();
			if (conn == null) 
			{
				Console.WriteLine ("The Connector Pool Is Full");
				sk.Close ();
				return;
			}

			conn.PosConnSocket = sk;
			conn.PosConnUsed = true;
			conn.SPConnStart ();

			Console.WriteLine (sk.RemoteEndPoint.ToString() + "Is Connected");

			m_socket.BeginAccept (AcceptConnCb, null);
		}