Windows防火墙阻止UDP连接

时间:2016-05-13 11:00:53

标签: windows networking udp firewall

我正在我学校的一个项目中工作,我们正在编写一个多人在线游戏。我正在研究服务器和客户端之间的连接,我偶然发现了一个问题,希望你能帮助我。

所以我在服务器和客户端之间有一个有效的TCP连接,它抓住客户端ip在服务器上给他们一个id。当4个客户端和服务器之间建立连接时,游戏开始,我切换到UDP连接,因为会发送很多包。

/ *问题* /

我遇到的问题是客户端可以将UDP包发送到服务器,然后服务器将其重定向到客户端。但是,不同计算机上的某些客户端会阻止来自服务器的传入UDP包的Windows防火墙。 所以客户端到服务器工作但不是服务器到客户端。当我禁用Windows防火墙时,一切正常。

如何在防火墙中设置例外或提示用户决定是否接受传入连接的消息?

1 个答案:

答案 0 :(得分:1)

所以我找到了解决问题的方法。我的问题是,我让我的电脑决定它想要使用哪个UDP端口但是这并没有触发防火墙只是阻止它所以我确实放入了一个“假”插座,它提醒防火墙所以他们的用户也同意我的软件使用端口,之后让计算机决定。

(initUDPSocket是我自己做的功能,不包括在SDL_Net中)

UDPpacket *p;
UDPsocket UDPsd, testsd;

testsd = initUDPSocket(11111); /* This socket alerts the firewall and ask for permission */

SDLNet_UDP_Close(testsd);
testsd=NULL; //this helps us know that this UDPsocket is not valid anymore

/*Open a UDP socket for reaching server from client */
UDPsd = initUDPSocket(0);             /* 0 = port value, 0 = any available port on the computer */