Python中文
首页
教程
问答
标签
搜索
登录
注册
如何使用socket接收http响应数据?
回答此问题可获得
20
贡献值,回答如果被采纳可获得
50
分。
<p>如您所知,有时我们无法知道数据的大小(如果http响应头中没有<code>Content-Length</code>)。在</p> <p>接收http响应数据的最佳方式是什么(使用套接字)?在</p> <p>下面的代码可以获取所有数据,但它将在<code>buf = sock.recv(1024)</code>处阻塞。在</p> <pre><code>from socket import * import sys sock = socket(AF_INET, SOCK_STREAM) sock.connect(('www.google.com', 80)) index = "GET / HTTP/1.1\r\nHOST:www.google.com\r\nConnection:keep-alive\r\n\r\n" bdsock.send(index) data = "" while True: buf = bdsock.recv(1024) if not len(buf): break data += buf </code></pre>
0 条评论
分类:
Python问答
请先
登录
后评论
默认排序
时间排序
1 个回答
匿名
1天前
擅长:python、mysql、java
<p>我想你也在给发信人写信。在</p> <p>一种典型的方法是用数据的长度作为通过线路发送的任何数据的前缀。然后贪婪地将接收到的数据附加到缓冲区中,然后在每个缓冲区接收到新的数据。在</p> <p>所以,如果我发送100字节的数据,我会在包的开头加一个int100前缀,然后再发送。然后,接收器就知道它在寻找什么。{end1>表示一个特殊的序列,如果你想得到一个特殊的序列。这是一种易于实现的错误检查形式。在</p>
请先
登录
后评论
针对此问题:
更多的回答
关注
89
关注
收藏
1
收藏,
216
浏览
网友 提问于 2天前
相关Python问题
如何添加虚拟方法
3 回答
如何添加表示整数的擦边字符串?
3 回答
如何添加要在Bokeh中使用的新font.ttf文件?
8 回答
如何添加要显示的矩阵XY轴编号和XY轴
3 回答
如何添加计数?
4 回答
如何添加计数器函数?
5 回答
如何添加计数器列来计算数据帧中另一列中的特定值?
9 回答
如何添加计数器来跟踪while循环中的月份和年份?
5 回答
如何添加计数并删除countplot的顶部和右侧脊椎?
1 回答
如何添加计时器wx.应用程序更新窗口对象的主循环?
2 回答
如何添加评论到帖子?PostDetailVew,Django 2.1.5
6 回答
如何添加评论拉梅尔亚姆
1 回答
如何添加诸如矩阵Python/Pandas之类的数据帧?
2 回答
如何添加谷歌地点自动完成到Flask?
7 回答
如何添加超时、python discord bot
5 回答
如何添加超过1dp的检查
4 回答
如何添加距离方法
7 回答
如何添加跟随游戏的敌人精灵
3 回答
如何添加路径以便python可以找到程序?
2 回答
如何添加身份验证/安全性以使用happybase访问HBase?
7 回答