コード例 #1
0
        private void ReadSocket(Socket pSocket, SocketStateObject pStateObject)
        {
            string message = string.Empty;

            if (pSocket == null)
            {
                return;
            }
            // Read data from the socket
            int bytesRead = 0;

            try
            {
                bytesRead = pSocket.Receive(pStateObject.mBuffer);
            }
            catch (Exception e)
            {
                Console.WriteLine("Can't read data from remote end ");
                pSocket.Close();
                bytesRead = 0;
                return;
            }

            if (bytesRead > 0)
            {
                pStateObject.mSb.Append(
                    Encoding.ASCII.GetString(
                        pStateObject.mBuffer,
                        0,
                        bytesRead));

                if (pSocket.Available > 0)
                {
                    ReadSocket(pSocket, pStateObject);
                }

                message = pStateObject.mSb.ToString();


                Console.WriteLine(
                    "Arrived {0} bytes from socket.\n Data: {1}",
                    message.Length,
                    message);

                // Process with the incoming data here
                // Data exchange, decoding
                DataEncoderImpl.Decapsulate(message);
            }
        }
コード例 #2
0
        private void ReadSocket(Socket pSocket, SocketStateObject pStateObject)
        {
            try
            {
                int bytesRead = pSocket.Receive(pStateObject.mBuffer);

                if (bytesRead > 0)
                {
                    pStateObject.mSb.Append(
                        Encoding.ASCII.GetString(
                            pStateObject.mBuffer,
                            0,
                            bytesRead));
                    if (pSocket.Available > 0)
                    {
                        ReadSocket(pSocket, pStateObject);
                    }
                }

                if (pStateObject.mSb.Length > 1)
                {
                    mMessage = pStateObject.mSb.ToString();

                    // Process with the incoming data here

                    Console.WriteLine(
                        "Arrived {0} bytes from socket.\n Data: {1}",
                        mMessage.Length,
                        mMessage);

                    // Process with the incoming data here
                    // Data exchange, decoding
                    DataEncoderImpl.Decapsulate(mMessage);
                }
            }
            catch (Exception e)
            {
                Console.WriteLine("Can't receive data from the server.");
            }
        }