2017年6月22日

python网络编程--线程GIL(全局解释器锁)

摘要: 一:什么是GIL 在CPython,全局解释器锁,或GIL,是一个互斥体防止多个本地线程执行同时修改同一个代码。这把锁是必要的主要是因为当前的内存管理不是线程安全的。(然而,由于GIL存在,其他特性已经发展到依赖于它强制执行的保证)。 上面的核心意思就是,无论你启多少个线程,你有多少个cpu, Py 阅读全文

posted @ 2017-06-22 10:16 shisanjun 阅读(138) 评论(0) 推荐(0) 编辑

python网络编程--进程线程

摘要: 一:什么是进程 一个程序执行时的实例被称为一个进程。 每个进程都提供执行程序所需的资源。一个进程有一个虚拟地址空间、可执行代码、对系统对象的开放句柄、一个安全上下文、一个独特的进程标识符、环境变量、一个优先级类、最小和最大工作集大小,以及至少一个执行线程。每个进程以一个线程开始,通常称为主线程,但可 阅读全文

posted @ 2017-06-22 10:12 shisanjun 阅读(146) 评论(0) 推荐(0) 编辑

2017年6月19日

python网络编程-paramiko

摘要: python基础学习日志day8-paramiko 一:简介 Python的paramiko模块,该模块机遇SSH用于连接远程服务器并执行相关操作 现有这样的需求:需要使用windows客户端,远程连接到Linux服务器,查看上面的日志状态,大家通常使用的方法会是: 1:用telnet 2:用PUT 阅读全文

posted @ 2017-06-19 20:29 shisanjun 阅读(188) 评论(0) 推荐(0) 编辑

python网络编程-optparse

摘要: Python 有两个内建的模块用于处理命令行参数: 一个是 getopt,《Deep in python》一书中也有提到,只能简单处理 命令行参数; 另一个是 optparse,它功能强大,而且易于使用,可以方便地生成标准的、符合Unix/Posix 规范的命令行说明。 示例 下面是一个使用 opt 阅读全文

posted @ 2017-06-19 20:28 shisanjun 阅读(155) 评论(0) 推荐(0) 编辑

2017年6月18日

python网络编程-socketserver

摘要: 一:socketserver简化了网络服务器的编写。 它有4个类:TCPServer,UDPServer,UnixStreamServer,UnixDatagramServer。 这4个类是同步进行处理的,另外通过ForkingMixIn和ThreadingMixIn类来支持异步 class soc 阅读全文

posted @ 2017-06-18 16:19 shisanjun 阅读(421) 评论(0) 推荐(0) 编辑

2017年6月17日

python网络编程-socket上传下载文件(包括md5验证,大数据发送,粘包处理)

摘要: ftp server 1) 读取文件名 2)检查文件是否存在 3)打开文件 4)检查文件大小 5)发送文件大小给客户端 6)等客户端确认 7)开始边读边(md5计算)发数据 8)给客户端发md5 阅读全文

posted @ 2017-06-17 19:43 shisanjun 阅读(904) 评论(0) 推荐(0) 编辑

python网络编程-socket发送大数据包问题

摘要: 一:什么是socket大数据包发送问题 socket服务器端或者客户端在向对方发送的数据大于对方接受的缓存时,会出现第二次接受还接到上次命令发送的结果。这就出现象第一次接受结果不全,第二次接果出现第一次结果。 比如send 1900 数据,recv 只接受1024。多于数据900放在缓存区里,第二次 阅读全文

posted @ 2017-06-17 15:45 shisanjun 阅读(8954) 评论(1) 推荐(0) 编辑

python网络编程-动态导入和断言

摘要: 一:动态导入importlib 在程序运行的过程中,根据变量或者配置动态的决定导入哪个模块,可以使用模块importlib importlib使用示例 二:断言assert 如果接下来的程序依赖于前面的,而后面程序很重要,不能出错。可以用assert ,如果检查不过关就抛出AssertionErro 阅读全文

posted @ 2017-06-17 11:10 shisanjun 阅读(192) 评论(0) 推荐(0) 编辑

2017年6月15日

python网络编程-socket“粘包”(小数据发送问题)

摘要: 一:什么是粘包 “粘包”, 即服务器端你调用时send 2次,但你send调用时,数据其实并没有立刻被发送给客户端,而是放到了系统的socket发送缓冲区里,等缓冲区满了、或者数据等待超时了,数据才会被send到客户端,这样就把好几次的小数据拼成一个大数据,统一发送到客户端了,这么做的目地是为了提高 阅读全文

posted @ 2017-06-15 20:17 shisanjun 阅读(261) 评论(0) 推荐(0) 编辑

2017年6月14日

python网络编程-socket样例

摘要: socket样例 一:只能一个客户端发送一个信息。 recv 官方建议最大8192 ,默认是阻塞的,客服端没有数据就是阻塞,如果客户 断开,conn,recv收到就是都是空数据,就会进入死循环,解决if not data:break 二:只能一个客户端发送N多消息 三:多个客户端发送多个消息(实现文 阅读全文

posted @ 2017-06-14 20:52 shisanjun 阅读(159) 评论(0) 推荐(0) 编辑

导航