python sock 返回html

from socket import *

 

def handle_client(client_socket):

"""爲一個客戶端服務"""

# 接收對方發送的數據

recv_data = client_socket.recv(1024).decode("utf-8") # 1024表示本次接收的最大字節數

# 打印從客戶端發送過來的數據內容

#print("client_recv:",recv_data)

request_header_lines = recv_data.splitlines()

for line in request_header_lines:

print(line)

# 返回瀏覽器數據

# 設置返回的頭信息 header

response_headers = "HTTP/1.1 200 OK\r\n" # 200 表示找到這個資源

response_headers += "\r\n" # 空一行與body隔開

# 設置內容body

#response_body = "<h1>fat boss<h1>\r\n"

#response_body += "<h2>come on<h2>\r\n"

#response_body += "<h3>binlang!!!<h3>\r\n"

s=open('cc.html','r')

response_body=s.read()

 

# 合併返回的response數據

response = response_headers + response_body

# 返回數據給瀏覽器

client_socket.send(response.encode("utf-8")) #轉碼utf-8並send數據到瀏覽器

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) #最多可以監聽128個連接

# 開啓while循環處理訪問過來的請求

while True:

# 如果有新的客戶端來鏈接服務端,那麼就產生一個新的套接字專門爲這個客戶端服務

# client_socket用來爲這個客戶端服務

# server_socket就可以省下來專門等待其他新的客戶端連接while True:

client_socket, clientAddr = server_socket.accept()

handle_client(client_socket)

 

if __name__ == "__main__":

main()

發佈了22 篇原創文章 · 獲贊 27 · 訪問量 6萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章