Obtenha o IP do cliente dos pacotes UDP recebidos com o UdpClient
Estou desenvolvendo um jogo multiplayer de ação com a ajuda do System.Net.Sockets.UdpClient classe
É para dois jogadores, portanto, deve-se abrir um servidor e aguardar as conexões de entrada. O outro jogador insere o IP do host e tenta enviar um "ping", para garantir que a conexão seja possível e que exista um servidor aberto. O host então responde com um "pong".
Quando o jogo está rodando, os dois precisam enviar mensagens UDP para os outros, para que ambos precisem do endereço IP do oponent
É claro que o servidor também pode inserir o IP do cliente, mas isso parece desnecessário para mi
Como posso obter o IP dos clientes do pacote udp quando a mensagem "ping" é recebid
Aqui está o meu código de recebimento (servidor aguardando 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();
}
}
}