关于JAVA UDP无法过墙的问题(急!!!)
我现在遇到一个很头痛的问题,百度了很久,还是没找到原因和解决办法,所以只能求助万能的CSDN了
前提:
1.我现在做了一个通讯系统,走的是UDP协议;
2.两个节点之间谁都可以是服务端或者客户端,因为谁都可以主动向对方发送数据包,且都可以不回复;
3.两个节点是两个不同的程序,各自绑定了自己的端口,假设A节点绑定的是1000号端口,B节点绑定的是1001号端口;
4.通讯时A节点发送的数据包的源端口是1000号端口,目的端口是1001号端口,B节点反之;
5.A节点是固定的地方,所以在A节点处,防火墙会将所有指向1000号端口的数据包打到A节点上;
6.B节点可以是全国任意一台能连接到以太网的PC机,无法要求B节点的使用者将防火墙的配置也配的和A节点一样;
问题:
1.在内网通讯,一切正常;
2.如果B节点的环境没有防火墙,一切正常;
3.如果B节点的环境有防火墙,B节点发送给A节点的数据包没有问题,但是A节点返回给B节点的包,B节点却收不到(在A节点的防火墙上抓包会看到B节点的数据包进来了,且A节点的返回包也出去了,但是在B节点的PC上却抓不到A节点的返回包,由于条件有限,没办法在B节点的防火墙上抓包,所以也不能肯定是B节点的墙把数据包丢弃了,也有可能是在半路中就被丢弃了,但是从上一点看的话,被B节点防火墙丢弃的可能性最大)
不知道我这样的说明有没有很清楚,我一直在线,如果谁不明白,我会及时回复的,先谢谢啦!
如果能帮我解决这个问题,我会加分的!