python - socket發(fā)送的信息怎么在瀏覽器中顯示出來(lái)
問(wèn)題描述
用socket模塊建立的socket服務(wù)端,比如監(jiān)聽(tīng)了本地的4399端口。用瀏覽器連接,但是顯示不了socket發(fā)來(lái)的字符。這該怎么辦?
問(wèn)題解答
回答1:因?yàn)槟愕亩丝诓皇?0, 所以瀏覽器沒(méi)法用http協(xié)議去解析你的請(qǐng)求, 因?yàn)樗徽J(rèn)識(shí)4399是干嘛的, 所以如果你想用監(jiān)聽(tīng)4399,并且用瀏覽器看到socket服務(wù)端發(fā)送的消息, 你就必須自己構(gòu)建http報(bào)文
import sockets = 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é)議頭是文本形式, 以rn作為每個(gè)字段的分隔, 最后頭部以rn結(jié)束, 所以我們主要構(gòu)造好 http頭, 瀏覽器就能識(shí)別的, 接下來(lái)的正文, 就能按照html的標(biāo)準(zhǔn)的編寫(xiě)了req.send(’HTTP/1.1 200 OKrnrn<html><body>hello</body></html>’)回答2:
關(guān)于Python SOCKET, 如果你是想瀏覽器看到數(shù)據(jù),那么你肯定要實(shí)現(xiàn)HTTP協(xié)議,不然瀏覽器怎么會(huì)知道你發(fā)來(lái)的啥,數(shù)據(jù)量有多大?關(guān)于Python Socket HTTP ,請(qǐng)看這里 https://github.com/thisforeda...
相關(guān)文章:
1. angular.js - angular內(nèi)容過(guò)長(zhǎng)展開(kāi)收起效果2. 關(guān)于nginx location配置的問(wèn)題,root到底是什么3. angular.js - angularjs的自定義過(guò)濾器如何給文字加顏色?4. docker鏡像push報(bào)錯(cuò)5. 關(guān)于docker下的nginx壓力測(cè)試6. 大家好,請(qǐng)問(wèn)在python腳本中怎么用virtualenv激活指定的環(huán)境?7. 并發(fā)模型 - python將進(jìn)程池放在裝飾器里為什么不生效也沒(méi)報(bào)錯(cuò)8. python的前景到底有大?如果不考慮數(shù)據(jù)挖掘,機(jī)器學(xué)習(xí)這塊?9. python 怎樣用pickle保存類(lèi)的實(shí)例?10. python2安裝失敗
