python - socket发送的信息怎么在浏览器中显示出来
问题描述
用socket模块建立的socket服务端,比如监听了本地的4399端口。用浏览器连接,但是显示不了socket发来的字符。这该怎么办?
问题解答
回答1:因为你的端口不是80, 所以浏览器没法用http协议去解析你的请求, 因为它不认识4399是干嘛的, 所以如果你想用监听4399,并且用浏览器看到socket服务端发送的消息, 你就必须自己构建http报文
import sockets = 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协议头是文本形式, 以rn作为每个字段的分隔, 最后头部以rn结束, 所以我们主要构造好 http头, 浏览器就能识别的, 接下来的正文, 就能按照html的标准的编写了req.send(’HTTP/1.1 200 OKrnrn<html><body>hello</body></html>’)回答2:
关于Python SOCKET, 如果你是想浏览器看到数据,那么你肯定要实现HTTP协议,不然浏览器怎么会知道你发来的啥,数据量有多大?关于Python Socket HTTP ,请看这里 https://github.com/thisforeda...
相关文章:
1. python - 求一个在def中可以实现调用本def满足特定条件continue效果的方法(标题说不太清楚,请见题内描述)2. $fields = $values = [];这条代码一直定义不了,一直报错,老师的源码也是被报错的,执行不了,请问该怎么解决这个问题3. MYSQL新建用户设置可以远程访问的问题4. node.js - nodejs和前端JavaScript 字符串处理结果不一样是什么原因?5. java - mybatis怎么实现在数据库中有就修改,没有就添加6. mysql - 我的myeclipse一直连显示数据库连接失败,不知道为什么7. linux - 为什么我在mysql的my.cnf下找不到bind-address?8. MySQL中的enum类型有什么优点?9. mysql多表联合查询优化的问题10. 数据库设计 - MySQL数据库主键问题
![$fields = $values = [];这条代码一直定义不了,一直报错,老师的源码也是被报错的,执行不了,请问该怎么解决这个问题](http://www.haobala.com/attached/image/news/202205/093622cb60.png)