socket发送的信息怎么在浏览器中显示出来

发布于 2022-09-04 21:08:38 字数 79 浏览 25 评论 0

用socket模块建立的socket服务端,比如监听了本地的4399端口。用浏览器连接,但是显示不了socket发来的字符。
这该怎么办?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

浅黛梨妆こ 2022-09-11 21:08:38

因为你的端口不是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>')
等你爱我 2022-09-11 21:08:38

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

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文