【发布时间】:2010-12-02 21:07:55
【问题描述】:
我有一个非常烦人的问题。我有一个 mIRC/Skype 应用程序,即带有文本和语音的聊天室。文本和聊天室内容通过 TCP 并完美运行,而 UDP 仅将记录的数据中继到其他连接的客户端。
在我的家庭网络上的两个客户端之间,音频传输工作正常。但是针对全局客户端,服务器既不会从他那里接收数据包,也不会从服务器接收数据包。
这是一个例子:
服务器使用 udp 套接字,而客户端使用 udpclient,但结果是一样的,并且在本地也可以工作。..
服务器全局ip:222.222.222.222 服务器本地ip:192.168.2.3 服务器端口:9999
客户端全局ip:111.111.111.111 客户端本地ip:192.168.0.100 客户端端口:8888
服务器 *将其套接字绑定到 192.168.2.3 : 9999 *从 111.111.111.111 接收:8888 *发送到 111.111.111.111.111 : 8888
客户 *将其套接字绑定到 192.168.0.100 *从 222.222.222.222 接收:9999 *发送到 222.222.222.222 : 9999
...你明白我的意思。我不知道为什么数据没有通过。我已经尝试在端口 53 上发送/接收(对于客户端和服务器),这甚至没有必要对吗?我的意思是无论如何流量都应该通过(就像使命召唤之类的游戏一样)并且没有 Windows 防火墙处于活动状态,在这种情况下只有路由器。
客户端/服务器互相使用connect(),而不是receiveFrom/sendTo。我也尝试过使用它,但没有区别。
我没有得到任何异常或任何东西,因此无法调试:(
可能是什么原因?考虑一下它在本地而非全球范围内有效的事实;我同意这听起来确实像防火墙问题,但正如我上面所描述的,我看不出这在我的场景中是如何适用的,我尝试了端口 53 和其他开放端口..
干杯:)
编辑:它的代码相当多,但如果有必要我可以复制它
【问题讨论】: