我有一个UDP服务器和客户端,当服务器和客户端都在同一台路由器后面时,它们可以在localhost上工作。
从外部IP连接时-IPEndPoint保留服务器IP。
服务器接收器:
private void Recv(IAsyncResult res)
{
IPEndPoint clientEndPoint = new IPEndPoint(IPAddress.Any, 0);
try
{
byte[] data = udpClient.EndReceive(res, ref clientEndPoint);
udpClient.BeginReceive(new AsyncCallback(Recv), null);
//Process codes
RaiseDataReceived(new ReceivedDataArgs(clientEndPoint.Address, clientEndPoint.Port, data));
}
catch (Exception e)
{
Console.WriteLine(e.ToString());
throw;
}
}
当服务器接收到来自外部客户端的消息时,clientEndPoint.Address保存服务器的地址,而不是客户端地址。有人经历过吗?我尝试了多种方式来从客户端接收消息而没有运气。