"""返回固定页面"""
# 1.导入模块
import socket
def request_handel(new_client_socket, ip_port):
# 7.接收客户端浏览器的请求协议
request_data = new_client_socket.recv(1024)
# print(request_data)
# 8.判断协议是否为空
if not request_data:
print("%s客户端已 断开连接"%str(ip_port))
new_client_socket.close()
return
# 9.拼接响应的报文
# 9.1 响应行
response_line ="HTTP/1.1 200 OK\r\n"
# 9.2 响应头
response_header ="Server:Python20WS/2.1\r\n"
# 9.3 响应空行
response_blank ="\r\n"
# 9.4 响应主体
# *************返回固定页面*****************
with open("index1.html" ,"rb")as f:
request_body = f.read()
response_text = (response_line + response_header + response_blank).encode() + request_body
# 10.发送响应报文
new_client_socket.send(response_text)
new_client_socket.close()
def main():
# 2.创建套接字
tcp_client_socket = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
# 3.设置地址可重用
# 当前套接字 属性 属性值
tcp_client_socket.setsockopt(socket.SOL_SOCKET,socket.SO_REUSEADDR,True)
# 4.绑定端口
tcp_client_socket.bind(("" , 8080))
# 5.设置监听,将套接字有主动变为被动
tcp_client_socket.listen(128)
# 6.接受客户端连接 创建一个函数
while True:
new_client_socket, ip_port = tcp_client_socket.accept()
print("客户端来了:%s"%str(ip_port))
request_handel(new_client_socket, ip_port)
# 11.关闭服务器
# tcp_client_socket.close()
if __name__ =='__main__':
main()