用socket模組建立的socket服務(wù)端,例如監(jiān)聽了本地的4399埠。用瀏覽器連接,但是顯示不了socket發(fā)出的字元。
這該怎麼辦?
因?yàn)槟愕倪B接埠不是80, 所以瀏覽器沒法用http協(xié)定去解析你的請(qǐng)求, 因?yàn)樗徽J(rèn)識(shí)4399是乾嘛的, 所以如果你想用監(jiān)聽4399,並且用瀏覽器看到socket服務(wù)端發(fā)送的訊息, 你就必須自己建構(gòu)http報(bào)文
import socket
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) # tcp 報(bào)文
s.bind(('localhost', 4399))
s.listen(2)
req, req_info = s.accept()
req.recv(65549)
# http協(xié)議頭是文本形式, 以\r\n作為每個(gè)字段的分隔, 最后頭部以\r\n結(jié)束, 所以我們主要構(gòu)造好 http頭, 瀏覽器就能識(shí)別的, 接下來的正文, 就能按照html的標(biāo)準(zhǔn)的編寫了
req.send('HTTP/1.1 200 OK\r\n\r\n<html><body>hello</body></html>')
關(guān)於Python SOCKET, 如果你是想瀏覽器看到數(shù)據(jù),那麼你肯定要實(shí)現(xiàn)HTTP協(xié)議,不然瀏覽器怎麼會(huì)知道你發(fā)來的啥,數(shù)據(jù)量有多大?
關(guān)於Python Socket HTTP ,請(qǐng)看這裡 https://github.com/thisforeda...