Heim  >  Fragen und Antworten  >  Hauptteil

python – So zeigen Sie die vom Socket gesendeten Informationen im Browser an

Der mit dem Socket-Modul erstellte Socket-Server lauscht beispielsweise auf den lokalen Port 4399. Ich verwende einen Browser, um eine Verbindung herzustellen, aber die vom Socket gesendeten Zeichen können nicht angezeigt werden.
Was soll ich tun?

淡淡烟草味淡淡烟草味2735 Tage vor937

Antworte allen(2)Ich werde antworten

  • 某草草

    某草草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>')

    Antwort
    0
  • 天蓬老师

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

    关于Python SOCKET, 如果你是想浏览器看到数据,那么你肯定要实现HTTP协议,不然浏览器怎么会知道你发来的啥,数据量有多大?
    关于Python Socket HTTP ,请看这里 https://github.com/thisforeda...

    Antwort
    0
  • StornierenAntwort