socketserver模块的使用
2024-10-20 20:57:32
import socketserver
class MyTCPhandler(socketserver.BaseRequestHandler):
def handle(self):
# print(self.request)
# print(self.client_address)
while True:
try:
data=self.request.recv(1024)
if not data:break
self.request.send(data.upper())
except Exception:
break
self.request.close()
if __name__ == '__main__':
server=socketserver.ThreadingTCPServer(('127.0.0.1',8082),MyTCPhandler)
# server=socketserver.ForkingTCPServer(('127.0.0.1',8082),MyTCPhandler) # windows系统用不了
server.allow_reuse_address=True #地址重用参数,默认为False,在里面做了一步判断,若果为Ture,表示可以重用地址
server.serve_forever() #相当于以前写的while True,一直开着
导入socketserver之后 自己写一个类,必须继承socketserver.BaseRequestHandler,在里面必须实现handle方法 启动服务的时候只需要server_forever
1、server.socket 用于传入请求的套接字对象。
2、server.sever_address 监听服务器的地址。如元组("127.0.0.1",80)
3、server.RequestHandlerClass 传递给服务器构造函数并由用户提供的请求处理程序类。
4、server.serve_forever() 处理无限的请求
5、server.shutdown() 停止serve_forever()循环
6、server.fileno() 返回服务器套接字的整数文件描述符。该方法可以有效地通过轮询操作(如select()函数)使用服务器实例。
执行流程图(借鉴):
最新文章
- java 24 - 4 GUI之创建数据转移窗口
- http://www.blogjava.net/xylz/archive/2013/08/05/402405.html
- 字符串_KMP算法(求next[]模板 hdu 1711)
- iOS 推送全解析
- uva 11020 - Efficient Solutions ——平衡BST
- python 抽象类、抽象方法的实现
- ????????????	no permissions
- php代码的一些高效写法
- JAVAEE——struts2_04:自定义拦截器、struts2标签、登陆功能和校验登陆拦截器的实现
- 微信开发系列——微信订阅号前端开发利器:WeUI
- Python 线程和进程
- 微信小程序支付最容易犯的坑notify_url(支付回调)
- Android灯光系统_编写HAL_lights.c【转】
- Our supersheet
- spoj375
- UVA11525 【Permutation】
- java绘图drawString位置的确定
- time_t和SYSTEMTIME之间的相互转换 【转】
- 【SpringMVC学习01】宏观上把握SpringMVC框架
- Django--队列2