Python搭建的udp服务器一直错误,不知道什么问题,找了个成功的我电脑也不响应?

Python 是一个高层次的结合了解释性、编译性、互动性和面向对象的脚本语言。

Python 的设计具有很强的可读性,相比其他语言经常使用英文关键字,其他语言的一些标点符号,它具有比其他语言更有特色语法结构。

Python 是一种解释型语言: 这意味着开发过程中没有了编译这个环节。类似于PHP和Perl语言。

Python 是面向对象语言: 这意味着Python支持面向对象的风格或代码封装在对象的编程技术。

Python 是初学者的语言:Python 对初级程序员而言,是一种伟大的语言,它支持广泛的应用程序开发,从简单的文字处理到 WWW 浏览器再到游戏。

首先非常感谢您在合作期间的付出! 现为了进一步整合资源,百度阅读即日起将停止自出版业务,其他业务不受影响。我们非常遗憾与您结束合作。现为了最大程度保障您的权益,希望您解除在注册和使用百度阅读自出版服务时与我们签订的协议。

您的书籍会在您确认解约后的3个工作日内在百度阅读平台下线,后台仍可查看,建议您做好相关备份工作;

请您于2019年12月31日23:59:59前在百度阅读平台后台申请提现;

合同规定的双方权利义务全部终止,均不再享有或履行;

以上,如有问题可以与我们邮件沟通。

免费直播课|Python数据可视化与科学计算可视化案例分享 ,5月28日晚20:00-21:30

董老师在哔哩哔哩网站免费分享的本学期“Python编程技术”讲课录屏视频,已更新到第11次课共27小时,观看地址:

《Python可以这样学》,ISBN:9,董付国,清华大学出版社,第9次印刷

董付国老师17本Python系列图书均提供配套教学资源。

创建UDP套接字进行通信,重点演示UDP套接字对象方法connect和bind的作用。

首先,编写一个“服务端”代码,用来被动接收发送端的信息然后做出一定的响应,向对方连续发送10个字节串。代码如下:

这个接收端的功能很简单,就是收到消息后原路发回10个信息。如果收到的是bye就关闭套接字。

接下来我们编写一个发送端程序,代码如下:

正常情况下,这两个程序会工作的很好,如图:

但是如果这个过程被干扰,就不会这样顺利了。编写下面这个代码的人通过某个途径知道了发送端“UDP套接字调用connect_demo2.py"正在使用的端口号,然后直接向其发送信息,试图干扰1和2的工作。代码如下:

在攻击者的干扰下,原来的通信双方正常通信过程被干扰,示例如下:

如何避免demo2接收到非通信对方发来的干扰信息呢?其实不难做到,只需要在接收到信息之后检查一下对方地址就可以了,例如:

这样的话,demo3的运行过程就不会收到attack的影响了,运行过程如下:

这样处理虽然可以解决问题,但略显笨拙。实际上套接字已经提供了更好的解决方案,那就是在UDP套接字发送端调用connect方法明确指定通信对方地址,这样的话就会在底层自动过滤其他地址发来的任何信息了,例如:

在UDP发送端调用connect方法注册指定地址为默认通信地址之后,可以使用send直接向默认地址发送信息,也可以使用recv直接从对方接收信息,不再需要使用sendto和recvfrom,并且recv会自动过滤其他地址发来的信息,可以避免被第三方攻击。运行过程如下:

由上可知,UDP是无连接协议这一点是一定的,没有任何疑问。但UDP套接字确实是可以调用connect方法的,只不过调用connect并不是真的要连接谁,只是在系统中标记一下通信对方的地址。这样的话,收发信息的代码可以简洁很多,并且可以避免来自第三方的攻击。

关注本公众号“Python小屋”,通过菜单“最新资源”==>“历史文章”可以快速查看分专题的 1000篇原创技术文章列表(可根据关键字在页面上搜索感兴趣的文章),通过“最新资源”==>“微课专区”可以 免费观看500节Python微课,通过“最新资源”==>“培训动态”可以查看近期Python培训安排,通过“最新资源”==>“教学资源”可以查看Python教学资源, 海量宝藏等你来挖掘

我要回帖

更多关于 服务器禁止udp协议 的文章

 

随机推荐