Python 2.7.11 Socket 库缺少对象?
Posted
技术标签:
【中文标题】Python 2.7.11 Socket 库缺少对象?【英文标题】:Python 2.7.11 Socket library missing objects? 【发布时间】:2016-05-20 21:31:14 【问题描述】:您好,我正在尝试从套接字库调用特定对象,更具体地说是 socket.send 和 socket.recv。我正在使用的 IDE 是 pycharm,它告诉我它在套接字库中找不到引用。这是我的代码的 sn-p:
def http(ip,port):
try:
socket.setdefaulttimeout(2)
a = socket.socket()
a.connect((ip,port))
socket.send("GET HTTP/1.1 \r\n")
giveMeUrInfoz = socket.recv(1024)
print "[+]" + "Huzzah! " + str(giveMeUrInfoz)
print "**********************************************************"
return giveMeUrInfoz
except Exception, e:
print "[-] Unable to grab info" + str(e)
print "**********************************************************"
return str(e)
pycharm IDE 告诉我它无法识别 send 和 recv 对象。我知道 socket.send 和 socket.recv 是套接字库的有效对象部分,根据以下指向 python 文档的链接:https://docs.python.org/2/library/socket.html。
我的问题是,为什么这不起作用?我还应该在我的脚本中提到此函数的目的是通过 get 请求获取 Web 服务器横幅信息。我将端口 80 以及有效的 IP 地址传递给函数。
【问题讨论】:
您是否将您的模块命名为socket.py
?
可能想看看this question
你需要提供traceback!
我相信你想要socket.send
而不是a.send
。
@CoryShay 作为答案发布,send
和 recv
是套接字对象上的方法,而不是模块中的函数,它们都在文档中的 "Socket Objects" 部分下。跨度>
【参考方案1】:
您需要使用send
和recv
命令来实例化Socket Object,而不是socket.send("GET HTTP/1.1 \r\n")
和socket.recv(1024)
。
所以在你的情况下,它将是 a.send("GET HTTP/1.1 \r\n")
或 a.recv(1024)
。
【讨论】:
感谢您的收获。 @0xa13x 考虑 accepting this answer 如果它解决了您的问题 :)以上是关于Python 2.7.11 Socket 库缺少对象?的主要内容,如果未能解决你的问题,请参考以下文章