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

查看:200
本文介绍了python - socket发送的信息怎么在浏览器中显示出来的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

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

解决方案

因为你的端口不是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>')

这篇关于python - socket发送的信息怎么在浏览器中显示出来的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆