0
我很難讓我的基本和簡單的TCP服務器正常地處理http請求。這是我到目前爲止.recv函數Socket編程Python中的TCP服務器
from socket import *
import sys
serverSocket = socket(AF_INET, SOCK_STREAM)
serverSocket.bind(('', 4567))
serverSocket.listen(1)
while True:
print('Ready to serve...')
connectionSocket, addr = serverSocket.accept()
print("connected from: ", addr)
try:
message = connectionSocket.recv(1024)
filename = message.split()[1]
f = open(filename[1:])
outputdata = f.read()
connectionSocket.send("HTTP/1.1 200 OK\r\n")
for i in range(0, len(outputdata)):
connectionSocket.send(outputdata[i].encode())
connectionSocket.send("\r\n".encode())
connectionSocket.close()
except IOError:
connectionSocket.send("file not found")
serverSocket.close()
sys.exit()
錯誤來自open語句。我沒有完全理解這行代碼的返回值是如何組織的。
message = connectionSocket.recv(1024)
我知道返回值是字節,但是當我嘗試使用機能的研究把它變成像解碼一個字符串()我得到的錯誤以及
我有.py文件和html文件坐在同一個目錄下我的本地機器上的方式和我測試這是我剛跑這和
http://127.0.0.1:4567/helloworld.html
打開一個瀏覽器,輸入我的代碼,然後及時接收到HTTP請求後崩潰。 任何和所有的幫助將不勝感激!
「我也有錯誤」什麼錯誤? 「我的代碼在收到HTTP請求後立即崩潰。」你有任何跡象表明它爲什麼崩潰? – xaxxon