File tree Expand file tree Collapse file tree 1 file changed +35
-0
lines changed
Expand file tree Collapse file tree 1 file changed +35
-0
lines changed Original file line number Diff line number Diff line change 1+ # 利用socket实现http协议
2+
3+ ** http协议是基于tcp的,所以利用tcp可以实现http协议,实现一个简单的 http web server功能。**
4+
5+ import socketserver
6+
7+
8+ body = """<h1>hello web client</h1>"""
9+
10+ response_param = ['HTTP/1.0 200 OK',
11+ 'Date: Mon, 13 May 2019 09:57:18 GMT',
12+ 'Content-Type: text/html; charset=utf-8',
13+ 'Content-Length: {}\r\n'.format(len(body.encode())),
14+ body]
15+ response = '\r\n'.join(response_param)
16+
17+
18+ class MyServer(socketserver.BaseRequestHandler):
19+ def handle(self):
20+ conn = self.request
21+ recv_data = b''
22+ while b'\n\n' not in recv_data and b'\n\r\n' not in recv_data:
23+
24+ recv_data += conn.recv(1024)
25+ print(recv_data)
26+ conn.send(response.encode())
27+ conn.close()
28+
29+
30+ if __name__ == '__main__':
31+ # 第一步
32+ # 实例化server对象,传入本机ip,以及监听的端口号,还有新建的继承socketserver模块下的BaseRequestHandler类
33+ server = socketserver.ThreadingTCPServer(('127.0.0.1', 8000), MyServer)
34+ # 激活服务端
35+ server.serve_forever()
You can’t perform that action at this time.
0 commit comments