[toc] 1 socket编程弊端 socket编程过于底层,编程虽然有套路,但是要写出健壮的代码还是比较困难的,所以很多语言都会socket底层API进行封装,Python的封装就是SocketServer模块。它是网络服务编程框架,便于企业级快速开发。 2 SocketServer模块 Soc ...
分类:
其他好文 时间:
2019-03-10 16:18:11
阅读次数:
145
2018-03-28 16:02:04 socketserver 此模块简化了socket的编写。 1、它有一个基类,定义了如何建立连接。BaseServer提供了服务类接口,BaseServer使用了select创建了多线程。BaseServer下面有四个类:TCPServer、UnixStrea ...
分类:
其他好文 时间:
2019-03-09 12:58:39
阅读次数:
178
我们之前写的tcp协议的socket是不是一次只能和一个客户端通信,如果用socketserver可以实现和多个客户端通信。它是在socket的基础上进行了一层封装,也就是说底层还是调用的socket,在py2.7里面叫做SocketServer也就是大写了两个S,在py3里面就小写了。后面我们要写 ...
分类:
其他好文 时间:
2019-02-25 10:33:45
阅读次数:
196
这里记录一下在写一个普通的SocketServer中遇到问题,就是当readLine的时候,迟迟获取不到由客户端发来的请求,in.readLine,一直堵塞,原因是因为客户端发信息的时候,只发里内容,而缺少了换行符 write.write("hello\n"); 这里是客户端 这是服务端 ...
分类:
其他好文 时间:
2019-02-24 01:15:04
阅读次数:
150
缓冲区的问题 recv的问题 解决粘包现象的高大上版 基于UDP协议的socket通信 SocketServer的源码解析 缓冲区的问题: # 1.客户端send一次就关闭,服务端recv完数据才关闭 import socket sk=socket.socket() sk.bind(('127.0. ...
分类:
其他好文 时间:
2019-02-22 19:58:52
阅读次数:
203
在socketserver.BaseServer.serve_forever中 在process_request方法中调用finish_request方法去实例化WSGIRequestHandler 在finish_request中实例化WSGIRequestHandler 在handle方法中 在 ...
分类:
Web程序 时间:
2019-02-11 12:15:24
阅读次数:
212
socketserver实现并发原理:给每一个前来链接的客户端开启一个线程执行通信。也就是给每一个连接“配备”了一个管家。 下面用一个简单的示例来演示socketserver实现并发(一个服务端,两个客户端): 服务器端: 客户端一: 客户端二: 打印结果: 服务器输出: 客户端一: 客户端二: ...
分类:
其他好文 时间:
2019-02-03 23:30:07
阅读次数:
197
再看继承 真正的大餐来之前,还是来点儿开胃菜!回顾一下关于类的继承的知识: 我们先看上面的代码,这是一个简单的类继承,我们可以看到父类Base和子类Son,它们中各有一个Testfunc方法,当我们实例化子类的对象sonobj时,可以看到初始化方法中黄色框框调用了Testfunc,那么这个时候执行的 ...
分类:
编程语言 时间:
2019-02-02 23:34:28
阅读次数:
321
参考blog :www.cnblogs.com/yuanchenqi/articles/5692716.html 1. sk = socket.socket() 里面有两个重要的参数,family 和 type type: SOCK_STREAM : tcp 默认 SOCK_DGRAM :udp f ...
分类:
编程语言 时间:
2019-01-30 07:24:08
阅读次数:
249
端口被占用,可能是其他程序占用,也有可能是自己代码逻辑不对,比如BZ在写SocketServer时把添加端口的代码放进了while里(sasasa.....)。 查看本机端口是否被占用:netstat -ano | findstr "端口号" 用此端口的pid查看是哪个程序在占用:tasklist| ...
分类:
编程语言 时间:
2019-01-29 18:22:14
阅读次数:
187