#/usr/bin/python
#coding=utf-8
from socket import *
def handle_client(client_socket):
# 客户端服务
recv_data = client_socket.recv(1024).decode("utf-8") # 1024表示本次最大接收字节数
request_header_lines = recv_data.splitlines()
for line in request_header_lines:
print(line)
# 返回浏览器数据
# 设置返回头信息 header
response_headers = "HTTP/1.1 200 OK\r\n" # HTTP Stuts
response_headers += "\r\n" # 空一行与body隔开
# 设置内容body
response_body = "<h1>testestestest</h1>\r\n"
# 合并范返回数据
response = response_headers + response_body
# 返回数据给客户端
client_socket.send(response.encode("utf-8")) #转编码utf8并发送给客户端
client_socket.close()
def main():
# 创建套接字
server_socket =socket(AF_INET,SOCK_STREAM)
# 设置当服务区线close 即服务区段4此挥手之后资源能够立即释放,保证了下次运行程序时可以立即绑定7788端口
server_socket.setsockopt(SOL_SOCKET,SO_REUSEADDR,1)
# 设置监听端口
server_socket.bind(("",7788))
# 使用socket创建爱你的套接字默认的属性是主动的,使用listen将其改为被动,用来监听连接
server_socket.listen(128) # 最大连接数
# while循环处理访问过来的请求
while True:
# 如果有新客户端来连接服务端,就生成一个新的套接字单独为按这个客户端服务
# client_socket用来为这个客户端服务
# server_socket专门等待其他新的客户端连接 while True:
client_socket,clientAddr = server_socket.accept()
handle_client(client_socket)
print("正在监听中")
if __name__ == '__main__':
main()