一个简单的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