首頁  >  問答  >  主體

python - socket發送的訊息怎麼在瀏覽器中顯示出來

用socket模組建立的socket服務端,例如監聽了本地的4399埠。用瀏覽器連接,但是顯示不了socket發出的字元。
這該怎麼辦?

淡淡烟草味淡淡烟草味2686 天前868

全部回覆(2)我來回復

  • 某草草

    某草草2017-05-18 10:58:56

    因為你的連接埠不是80, 所以瀏覽器沒法用http協定去解析你的請求, 因為它不認識4399是乾嘛的, 所以如果你想用監聽4399,並且用瀏覽器看到socket服務端發送的訊息, 你就必須自己建構http報文

    import socket
    s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)    # tcp 报文
    s.bind(('localhost', 4399))
    s.listen(2)
    req, req_info = s.accept()
    req.recv(65549)
    # http协议头是文本形式, 以\r\n作为每个字段的分隔, 最后头部以\r\n结束, 所以我们主要构造好 http头, 浏览器就能识别的, 接下来的正文, 就能按照html的标准的编写了
    req.send('HTTP/1.1 200 OK\r\n\r\n<html><body>hello</body></html>')

    回覆
    0
  • 天蓬老师

    天蓬老师2017-05-18 10:58:56

    關於Python SOCKET, 如果你是想瀏覽器看到數據,那麼你肯定要實現HTTP協議,不然瀏覽器怎麼會知道你發來的啥,數據量有多大?
    關於Python Socket HTTP ,請看這裡 https://github.com/thisforeda...

    回覆
    0
  • 取消回覆