http://msdn.microsoft.com/en-us/library/system.net.sockets.udpclient.receive.aspx

рабатываю многопользовательскую игру с помощьюSystem.Net.Sockets.UdpClient класс.

Это для двух игроков, поэтому нужно открыть сервер и ждать входящих соединений. Другой игрок вводит IP-адрес хоста и пытается отправить «ping», чтобы убедиться, что соединение возможно и существует открытый сервер. Хозяин тогда отвечает "понгом".

После запуска игры оба должны отправлять друг другу сообщения udp, поэтому им нужен IP-адрес противника.

Конечно, сервер также может вводить IP-адреса клиентов, но это кажется мне ненужным.

Как получить IP-адрес клиента из пакета udp при получении сообщения «ping»?

Вот мой код получения (сервер ожидает пинг):

    private void ListenForPing()
    {
        while (!closeEverything)
        {
             var deserializer = new ASCIIEncoding();
             IPEndPoint anyIP = new IPEndPoint(IPAddress.Any, 0);
             byte[] recData = udp.Receive(ref anyIP);
             string ping = deserializer.GetString(recData);
             if (ping == "ping")
             {
                 Console.WriteLine("Ping received.");
                 InvokePingReceiveEvent();
             }
        }
    }

Ответы на вопрос(2)

Ваш ответ на вопрос