Assets.UDP.DoReceiveFrom C# (CSharp) Method

DoReceiveFrom() private method

private DoReceiveFrom ( IAsyncResult iar ) : void
iar IAsyncResult
return void
        private void DoReceiveFrom(IAsyncResult iar)
        {
            try
            {
                //Get the received message.
                Socket recvSock = (Socket)iar.AsyncState;
                int msgLen = recvSock.EndReceiveFrom(iar, ref endPoint);
                char[] localMsg = new char[msgLen];
                Array.Copy(buffer, localMsg, msgLen);

                //Start listening for a new message.
                udpSock.BeginReceiveFrom(buffer, 0, buffer.Length, SocketFlags.None, ref endPoint, DoReceiveFrom, udpSock);

                string message = new string(localMsg);
                if (callbackSet)
                    udpCallback(message);
            }
            catch (ObjectDisposedException)
            {
                //expected termination exception on a closed socket.
                // ...I'm open to suggestions on a better way of doing this.
            }
        }