博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
一个简单的WebServer,socket+threading
阅读量:6626 次
发布时间:2019-06-25

本文共 1045 字,大约阅读时间需要 3 分钟。

一个简单的WebServer

import socketimport threadingbody = '

web server

'response_params = [ 'HTTP/1.0 200 OK', 'Content-Type: text/html;charset=utf-8', 'Content-Length: {}\r\n'.format(len(body.encode())), body,]response = '\r\n'.join(response_params)def handle(conn): request = '' while '\n\n' not in request and '\n\r\n' not in request: request += conn.recv(1024).decode() print(request) conn.send(response.encode()) conn.close()if __name__ == '__main__': sk = socket.socket(socket.AF_INET, socket.SOCK_STREAM, 0) address = ("127.0.0.1", 8001) sk.setsockopt(socket.SOL_SOCKET,socket.SO_REUSEADDR,1) # 端口复用 sk.bind(address) sk.listen(5) sk.setblocking(0) # 非阻塞 try: while True: try: conn,addr = sk.accept() except socket.error as e: continue t = threading.Thread(target=handle,args=(conn,)) t.start() finally: sk.close()

浏览器访问显示WebServer,服务端输出request

转载于:https://www.cnblogs.com/sfencs-hcy/p/10980923.html

你可能感兴趣的文章
ESXi 5.0设置时间
查看>>
PLSQ显示乱码的解决方法
查看>>
centos 释放缓存
查看>>
opengl学习笔记——纹理贴图
查看>>
怎么在win7让WAMP下的apache自动启动
查看>>
WIN2008R2下安装plsqldeveloper和toad
查看>>
jquery 通过点击事件获取id
查看>>
ELK学习笔记b
查看>>
Linux无人值守自动化安装详细配置流程!
查看>>
jquery实现radio按钮在分组状态下点击选中,再次点击取消选中
查看>>
【51CTO学院三周年】我和51CTO学院的点滴
查看>>
hadoop2.4.1+hbase0.98.3实现的分布式网盘系统初步
查看>>
ibatis批量新增-自增长序列
查看>>
linux系统管理之九:rpm安装包
查看>>
Linux系统中查看日志的常用命令
查看>>
java基础(二) 自增自减与贪心规则
查看>>
VMWare View的组件
查看>>
Oracle GoldenGate学习之--异构平台同步(Mysql到Oracle)
查看>>
Linux下date命令使用举例说明
查看>>
Centos6下SVN服务器(结合Apache)的搭建
查看>>