【问题标题】:Python 2.7.11 Socket library missing objects?Python 2.7.11 Socket 库缺少对象?
【发布时间】: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" 部分下。跨度>

标签: python python-2.7 sockets pycharm


【解决方案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)

【讨论】:

猜你喜欢
  • 2014-08-22
  • 1970-01-01
  • 1970-01-01
  • 2020-01-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-09-15
  • 2021-07-12
相关资源
最近更新 更多