已存在应用程序的 UDP 打孔

UDP hole punching for an already existent application

我正在尝试在我的大学网络上使用 YAWCam。我将它用作另一个网络后面的另一个应用程序需要访问的 mjpg 流媒体。不幸的是,我的大学网络无法转发。输入 udp-hole punching。当我得知它时,我觉得这太棒了,但很快意识到,除非我能弄清楚如何实际修改这个程序(它不是开源的),否则我将无法使 UDP 打孔按常规工作。

请问有没有不改变原程序打孔的方法?可能通过从 yawcam 用来打洞的相同端口发送数据包,然后让常规请求刷新它?我对网络代码有点陌生,所以我不完全确定 "correct" 方法是什么。

不,这是不可能的。两个不同的程序不能绑定到同一个端口。端口号的目的是识别将流量路由到哪个 运行 应用程序实例。如果两个应用程序分别将两个套接字绑定到同一个端口号,则该路由将变得不可能。