import socket def service_client(new_socket,request): # 接收浏览器的请求 #request = new_socket.recv(1024) print(request) # 利用http协议给浏览器返回数据 response = "HTTP/1.1 200 OK\r\n" # 在python中\r\n表示一个空格 response += "content-lenth:%d\r\n"%len("<h1>I love you<h1>") response += "<h1>I love you<h1>" new_socket.send(response.encode("utf-8")) def main(): # 创建套接字 tcp_server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM) tcp_server_socket.setsockopt(socket.SOL_SOCKET,socket.SO_REUSEADDR,1) # 绑定 tcp_server_socket.bind(("", 7890)) # 变为监听套接字 tcp_server_socket.listen(128) # 将套接字改为非堵塞的方式 tcp_server_socket.setblocking(False) tcp_server_list = list() while True: # 等待新客户端的链接 try: new_socket, client_addr = tcp_server_socket.accept() except Exception as ret: pass else: new_socket.setblocking(False) tcp_server_list.append(new_socket) for client_socket in tcp_server_list: try: recv_date = client_socket.recv(1024).decode("utf-8") except Exception as ret: pass else: if recv_date: service_client(new_socket,recv_date) else: client_socket.close() tcp_server_list.remove(client_socket) tcp_server_socket.close() if __name__ == "__main__": main()
原文:https://www.cnblogs.com/tendresse/p/11489051.html