udp数据报无法发送到服务器上的udp服务端的解决办法

5829 人浏览 | 时间: 2016-03-12 23:49:40 | 作者: codexia

    最近在学习socket编程,然后想测试一下udp通信。在本机和局域网里测试都成功了,然后想将udp服务器端放在真正的服务器上运行,udp客户端放在个人电脑,然后让客户端连接服务器端。结果服务器端总是没有反应,让人很着急。
    查看服务器的监控软件,发现收到大量的udp数据报,但是udp服务端程序却始终没有动静。我就怀疑是监控软件拦截了,但是仔细查看监控软件,也没有发现拦截的痕迹。
    那么也只有服务器上的防火墙拦截了。因为监控软件确实显示收到了大量的udp数据报。为了确认服务器确实收到了udp数据报,我将在循环中不停的发送udp数据报,然后在服务器监控软件看到流量达到了8mbps了,然后关闭udp客户端,流量消失了。这就证明了,udp真的到达服务器了。
    那么问题不是监控软件的拦截,就去看看防火墙了。因为不熟悉防火墙,所以也不知道怎么下手。依稀记得好像可以设置防火墙的进入和出去的程序。
    那么简单的解决办法就是关闭防火墙。当然,如果服务器用作他用,就不能随意关闭防火墙了。那么我们就对udp服务端的程序进行设置,让udp服务端程序的所有端口都放行。
    下面演示设置防火墙放行udp服务端程序:

1.打开防火墙,找到“允许程序或功能通过Windows防火墙”,点击进去,如下图所示:

允许程序或功能通过Windows防火墙

【允许程序或功能通过Windows防火墙】

2.在弹出的界面中,找到“允许运行另一程序”来添加允许通过防火墙的程序,这里就是我们的udp服务端程序了。

防火墙允许运行另一程序

【防火墙允许运行另一程序】
【将选择的程序添加到防火墙允许通过的程序列表中】
    然后你在用客户端连接服务器上的udp服务端程序,就发现可以收到udp数据报了。
请微信扫码阅读
为防止恶意爬虫,
已开启反爬机制

相关阅读