#/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()