为了账号安全,请及时绑定邮箱和手机立即绑定

Python中socket函数recv的问题!

Python中socket函数recv的问题!

Qyouu 2018-07-17 14:07:16
我在写python教程的博客,但是今天在写socket编程的相关知识的时候,准备用下面的程序做演示代码,本以为不会有问题,但是问题就莫名其妙的出现了!d = s.recv(1024) 这段代码的返回值通过使用 not d 判断总是失败,于是那个循环读取的 while 就陷入了死循环,请各位帮忙看一下,谢谢!#-*- coding:utf8 -*-import sockets = socket.socket(socket.AF_INET, socket.SOCK_STREAM)s.connect(("www.oschina.net", 80))s.send("GET / HTTP/1.1\r\nHost:www.oschina.net\r\n\r\n")tmp = []while True:    d = s.recv(1024)    if not d:        break    tmp.append(d)data = ''.join(tmp)s.close()header, html = data.split("\r\n\r\n", 1)print headerwith open("oschina.html", "wb") as f:    f.write(html)
查看完整描述

2 回答

?
largeQ

TA贡献2039条经验 获得超7个赞

服务器没断开链接,recv一直阻塞在那里,还没走到if not d

查看完整回答
反对 回复 2018-07-18
?
鸿蒙传说

TA贡献1865条经验 获得超7个赞

recv没有得到信息的时候会返回一个0吧,not 0返回了True

查看完整回答
反对 回复 2018-07-18
  • 2 回答
  • 0 关注
  • 2075 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信