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 作为答案发布,sendrecv 是套接字对象上的方法,而不是模块中的函数,它们都在文档中的 "Socket Objects" 部分下。跨度> 【参考方案1】:

您需要使用sendrecv 命令来实例化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 库缺少对象?的主要内容,如果未能解决你的问题,请参考以下文章

socket库:Python实现组播与发送二进制数据

socket库:Python实现组播与发送二进制数据

python系列:socket库详解

网络编程-Python的socket库

Python中的Socket.IO客户端库[关闭]

错误:缺少 OpenSSL 库?在尝试安装python时