All pastes #382560 Raw Edit

Something

public text v1 · immutable
·published 2007-03-05 19:09 UTC
rendered paste body
        private static void AsyncRecv(IAsyncResult ar)
        {
            ClientBase client = (ClientBase) ar.AsyncState;

            try
            {
                int num_bytes = client.TcpSocket.EndReceive(ar);

                if (num_bytes == 0)
                {
                    client.Server.DisconnectClient(client);
                }
                else
                {
                    unchecked
                    {
                        client.m_bytesRecv += num_bytes;
                        m_totalBytesRecv += (uint) num_bytes;
                    }

                    client.OnReceive(num_bytes);
                    client.TcpSocket.BeginReceive(client.m_inBuf, client.InOffset,
                                                  client.m_inBuf.Length - client.InOffset, SocketFlags.None,
                                                  new AsyncCallback(AsyncRecv), client);
                }
            }
            catch (ObjectDisposedException)
            {
                client.Server.DisconnectClient(client);
            }
            catch (Exception e)
            {
                client.Server.Warning(client, e);
                client.Server.DisconnectClient(client);
            }
        }