import socketdef handle_client(socket_con): ???""" ??????接收来自客户端的请求,并接收请求报文,解析,返回 ???""" ???# 服务器接收客户端的请求报文 ???request = socket_con.recv(4096).decode() ???print(request) ???# 服务器拼接响应报文并回复 ???response_line = ‘HTTP/1.1 200 OK\r\n‘ ???response_head = ‘Server:skylark 2.0\r\n‘ ???response_head += ‘Content-Type:text/html;charset=utf-8\r\n‘ ???response_body = ‘这是显示的内容!\r\n‘ ???response = response_line + response_head + ‘\r\n‘ + response_body ???socket_con.send(response.encode()) ???socket_con.close()def main(): ???# 服务器创建负责监听的socket ???socket_listen = socket.socket(socket.AF_INET, socket.SOCK_STREAM) ???# 设置端口重用 ???socket_listen.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, True) ???# 绑定监听端口 ???socket_listen.bind((‘‘, 8888)) ???# 设置监听队列 ???socket_listen.listen(128) ???# 通过循环不同的接受请求 ???while True: ???????# accept() 返回元组 (socket object, address info) ???????socket_con, socket_con_adds = socket_listen.accept() ???????# 打印提示信息 ???????print(‘客户端:‘,socket_con_adds,‘连接成功!‘) ???????# 使用函数处理客户端发送的信息 ???????handle_client(socket_con)if __name__ == ‘__main__‘: ????main()
返回固定数据的web服务器
原文地址:https://www.cnblogs.com/wf-skylark/p/9027102.html