CentralMine.NET.US_Stratum.ReadNetwork C# (CSharp) Method

ReadNetwork() private method

private ReadNetwork ( ) : void
return void
        void ReadNetwork()
        {
            if (mSocket.Connected)
            {
                if (mSocket.Poll(1, SelectMode.SelectRead))
                {
                    // Data to be read
                    byte[] packetData = new byte[1024 * 32];
                    int bytesRead = mSocket.Receive(packetData);
                    if (bytesRead > 0)
                    {
                        Array.Copy(packetData, 0, mPendingData, mPendingDataSize, bytesRead);
                        mPendingDataSize += bytesRead;

                        while (mPendingDataSize > 0)
                        {
                            int i = 0;
                            for (i = 0; i < mPendingDataSize; i++)
                            {
                                if (mPendingData[i] == '\n')
                                    break;
                            }

                            if (i <= mPendingDataSize)
                            {
                                MemoryStream ms = new MemoryStream(mPendingData);
                                StreamReader sr = new StreamReader(ms);

                                string line = sr.ReadLine();
                                ProcessNetworkLine(line);

                                int offset = (int)line.Length + 1;
                                mPendingDataSize -= offset;
                                Array.Copy(mPendingData, offset, mPendingData, 0, mPendingDataSize);

                                sr.Close();
                            }
                        }
                    }
                }
            }
        }