Мой локальный ip: 192.168.0.70, внешний ip: 192.168.0.50: 60000
Я хочу получать данные от внешней ip-отправки на локальный ip. Я использую класс Socket, потому что я могу отправлять данные с помощью удаленного IPEndPoint. Но когда соединение Udp закрывается, локальный ip-порт динамически изменяется. Как я могу получать данные?
private static void UdpConnect()
{
try
{
IPEndPoint remoteEP = new IPEndPoint(IPAddress.Parse("192.168.0.50"), 60000);
Socket client = new Socket(AddressFamily.InterNetwork,
SocketType.Dgram, ProtocolType.Udp);
client.Connect(remoteEP);
byte[] sendbuffer = { 1, 2, 3 };
client.Send(sendbuffer);
byte[] receivebuffer = new byte[512];
client.Receive(receivebuffer);
}
catch (Exception e)
{
Console.WriteLine(e.ToString());
}
}
Если вам нужно прослушивать определенный локальный порт, используйте Socket.Bind, а затем Socket.ReceiveFrom. Вы не нуждаетесь в вызове Socket.Connect, поскольку UDP - это протокол без установления соединения.