コード例 #1
0
        private static void EndReceiveMessage(IAsyncResult asyncResult)
        {
            DataState dataState = (DataState)asyncResult.AsyncState;
            Socket    handler   = dataState.handler;

            byte[] buffer      = dataState.buffer;
            int    messageSize = handler.EndReceive(asyncResult);

            if (messageSize > 0)
            {
                string message = null;
                message = Encoding.ASCII.GetString(buffer, 0, messageSize);

                StartReceiveMessage(handler);
                OnMessageReceived(message);
            }
            else
            {
                clients.Remove(handler);
                handler.Shutdown(SocketShutdown.Both);
                handler.Close();
            }
        }