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();
}
}
}
}
}
}