Featured post
c# - UDP hole-punching: testability on single machine -
i'm writing simple p2p application test feasibilty of using udp hole-punching in larger project.
i tried test apps home yesterday , worked.
however, @ work , same code no longer job. sender sending appropriate port on external ip address of our router here, receiver isn't getting of them.
prior calling udpclient.receive()
, receiving app sends packet ip:port listening on. again, works on home setup, not here. outcome same regardless of whether windows firewall on or off, that's not issue.
could routers handling situation differently?
edit1: both apps run on same machine.
in answer own question:
the routers indeed exhibiting different behavior.
my home router hooked laptop. assume why when send out udp packet port n leaves router on port n.
however, work network consists of several computers , router randomizes port on end, means packet sent port y leave router on port x.
i have gotten home , work machines communicate through nat without using port forwarding in following way:
h - sends packet port w:b, thereby opening port incoming connections
w - sends packet h:a , switches receive mode. has open port.
h - receives packet w , instead of presuming know port reply to, checks packet source port , uses instead.
h - sends packet w:source port
w - receives packet.
voila.
in practice, tho, h , w contact server exchange connection details, simplifies matters because server knows ports h , w sending from.
- Get link
- X
- Other Apps
Comments
Post a Comment