利用python3来实现TCP协议,和UDP类似。UDP应用于及时通信,而TCP协议用来传送文件、命令等操作,因为这些数据不允许丢失,否则会造成文件错误或命令混乱。下面代码就是模拟客户端通过命令行操作服务器。客户端输入命令,服务器执行并且返回结果。TCP(TransmissionControlProtocol传输控制协议):是一种面向连接的、可靠的、基于字节流的传输层通信协议,由IETF的RFC793定义。TCP客户端fromsocketimport*ho
系统 2019-09-27 17:55:14 2397
聊聊Python的单元测试框架(二):nose和它的继任者nose2作者:HelloGitHub-ProdesireHelloGitHub的《讲解开源项目》系列,项目地址:https://github.com/HelloGitHub-Team/Article一、nosenose是一个第三方单元测试框架,它完全兼容unittest,并且号称是一个更好用的测试框架。那么nose除了具备unittest的所有功能外,还具有哪些优势呢?1.1用例编写用例的编写方式
系统 2019-09-27 17:54:39 2397
python异步IO编程(二)目录开门见山AsyncIO设计模式事件循环asyncio中的其他顶层函数开门见山下面我们用两个简单的例子来让你对异步IO有所了解importasyncioasyncdefcount():print("One")awaitasyncio.sleep(1)print("Two")asyncdefmain():awaitasyncio.gather(count(),count(),count())if__name__=="__mai
系统 2019-09-27 17:53:13 2397
多路复用IO(IOmultiplexing)这种IO方式为事件驱动IO(eventdrivenIO)。我们都知道,select/epoll的好处就在于单个进程process就可以同时处理多个网络连接的IO。它的基本原理就是select/epoll这个function会不断的轮询所负责的所有socket,当某个socket有数据到达了,就通知用户进程。它的流程如图:select是多路复用的一种当用户进程调用了select,那么整个进程会被block,而同时,
系统 2019-09-27 17:52:57 2397
一、Python基础实战之猜年龄游戏给定年龄,用户可以猜三次年龄年龄猜对,让用户选择两次奖励用户选择两次奖励后可以退出i=0prize_dict={0:'布娃娃',1:'变形金刚',2:'奥特曼',3:''}while1:i+=1age=input("输入你的年龄:")age=age.strip("")ifnotage.isdigit():print("好好输")continueifint(age)==18:print("猜对了,可以在以下奖品中选择两件奖
系统 2019-09-27 17:51:54 2397
一些概念:import:当你import的时候,python只会在sys.path这个变量(一个list,你可以print出来看)里面的路径中找可能匹配的package和module。module:模块就是py文件package:package就是里面有__init__.py的文件夹。这个__init__.py最好是空的,功能就是告诉python这个是个package而不是普通的文件夹。如果__init__.py中有代码的话,这些代码会在package被i
系统 2019-09-27 17:51:01 2397
PythonORM概览作为一个美妙的语言,Python除了SQLAlchemy外还有很多ORM库。在这篇文章里,我们将来看看几个流行的可选ORM库,以此更好地窥探到PythonORM境况。通过写一段脚本来读写2个表,person和address到一个简单的数据库,我们能更好地理解每个ORM库的优缺点。SQLObjectSQLObject是一个介于SQL数据库和Python之间映射对象的PythonORM。得益于其类似于RubyonRails的ActiveR
系统 2019-09-27 17:49:05 2397
代码注释单行注释#多行注释'''多行注释'''#这是单行注释'''这是多行注释'''print函数用法print('hello','world',sep="#",end="!")sep表示多个值之间的间隔符,end表示以什么结尾print函数格式化%c格式化字符及其ASCII码%s格式化字符串%d格式化整数%u格式化无符号整型%o格式化无符号八进制数%x格式化无符号十六进制数%X格式化无符号十六进制数(大写)%f格式化浮点数字,可指定小数点后的精度%e用科
系统 2019-09-27 17:47:01 2397
Python的字符集处理实在蛋疼,目前使用UTF-8居多,然后默认使用的字符集是ascii,所以我们需要改成utf-8查看目前系统字符集复制代码代码如下:importsysprintsys.getdefaultencoding()执行:复制代码代码如下:[root@lee~]#pythona.pyascii修改成utf-8复制代码代码如下:importsyssys.setdefaultencoding('utf-8')printsys.getdefault
系统 2019-09-27 17:46:20 2397
前言WAF上线之后,处理最多的是误报消除。产生误报有多种原因,比如web应用源码编写时允许客户端提交过多的cookie;比如单个参数提交的数值太大。把误报降低到了可接受的范围后,还要关注漏报。WAF不是神,任何WAF都可能被绕过。所以还需要定位漏过的攻击,明确漏报的原因,才能updateWAF的策略。要定位漏报,就必须分析Web应用的访问日志了。一个站点,每天产生的access日志大概接近1GB,显然靠肉眼看是不现实的。这就需要用python帮助自动分析。
系统 2019-09-27 17:37:54 2397