public void BeginReceive()
{
try
{
if (Connection != null)
{
// Reset Buffer offset back to the original allocated offset
BufferDataToken token = ReadEventArgs.UserToken as BufferDataToken;
ReadEventArgs.SetBuffer(token.BufferOffset, token.BufferBlockSize);
// Begin Receiving
if (!Connection.ReceiveAsync(ReadEventArgs))
ProcessReceive();
}
}
catch (ObjectDisposedException e)
{
if (!DisconnectEventCalled)
{
// Uh-Oh. idk how we got here
Program.ErrorLog.Write("WARNING: [GamespyStream.BeginReceive] ObjectDisposedException was thrown: " + e.Message);
// Disconnect user
DisconnectEventCalled = true;
if (OnDisconnect != null)
OnDisconnect();
}
}
catch (SocketException e)
{
HandleSocketError(e.SocketErrorCode);
}
}