UDP server/client med NAT virker ikke
HejsaJeg er ret erfaren med at lave netværks programmering, men ikke med UDP. Jeg har en server der lytter på port 8000, sådan:
server = new UdpClient();
server.Client.Bind(new IPEndPoint(IPAddress.Any, int.Parse(PortBox.Text)));
Og en Client der forbinder sådan:
C = new UdpClient();
C.Connect(IPAddress.Parse(ServerIPBox.Text), int.Parse(ServerPortBox.Text));
Og Clienten lytter efter beskeder fra serveren:
IPEndPoint IPE = null;
received = C.Receive(ref IPE);
string ReceivedData = Encoding.ASCII.GetString(received);
Der er forwarded til min IP med port 8000 osv. Og clienten kan også forbinde til serveren (samme PC) via min WAN IP. Men når serveren svarer tilbage når en client sender noget, når det aldrig frem til clienten, kun hvis jeg forbinder til serveren via LAN IP. Nogle gange virker det med WAN, andre gange ikke...
Serveren svarer sådan:
server.Client.SendTo(Encoding.ASCII.GetBytes("UserList#" + SB.ToString()), RemoteEP);
RemoteEP er fra ref receive, den burde jo kunne svarer tilbage på samme EP som den får en besked fra?
Er der nogen der kan forklare dette mærkelige fænomen?