套接字模块中缺少属性

时间:2015-04-22 17:45:36

标签: python sockets

我在Ubuntu 14.04 LTS上工作。我需要使用getpeername来处理我正在处理的脚本。我得到了AttributeError,因为它不存在:dir(socket)getpeername之外的所有内容。但是,'GETPEERNAME 1'列在所有pyconfig.h文件中。这适用于2.7,3.4并且当我在另一台计算机上安装了新的操作系统时(只是为了查看它是否是叠加安装的问题)。这是14.04的问题吗?它可以修复吗?我输了。

import socket

n= 1024
M= 65535
L=[]

while n<= int(M):
        target = "0.0.0.0"
        port = n
        server = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
        try:
                server.bind ((target, port))
                print "[*] Listening on %s:%d" % (target, port)
        except:
                print (port,'Busy')
                L.append (port)

        n=n+1
print (L)
socket.getpeername(L[2])

1 个答案:

答案 0 :(得分:1)

getpeername()不是socket模块的一部分,它是套接字对象的一部分。它对侦听套接字也没用,因为它们没有对等体。

你可能需要这样的东西:

clnt_sock, _ = server.accept()
print clnt_sock.getpeername()

此外,您的收听路径不正确,您忘记拨打listen

server.listen(5)