Python 在';无';

Python 在';无';,python,sockets,port-scanning,Python,Sockets,Port Scanning,我正在使用Python3.8,并试图学习为网络编写代码;我看到了2014年的一些示例,其中包含端口扫描仪的代码,它定义了如下端口扫描功能: def pscan(port): sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) try: con = sock.connect((target, port)) with print_lock: print("P

我正在使用Python3.8,并试图学习为网络编写代码;我看到了2014年的一些示例,其中包含端口扫描仪的代码,它定义了如下端口扫描功能:

def pscan(port):
    sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    try:
        con = sock.connect((target, port))
        with print_lock:
            print("Port:",port,"is open.")
        con.shutdown()
        con.close()
当我在pycharm中实现这一点时,我看到这样的信息: “在“无”中找不到引用“shutdown” 和 “在“无”中找不到引用“关闭”

代码运行,但似乎从未停止。。。我猜这是因为没有正确地关闭插座


有人能告诉我错误在哪里吗?

connect
不会返回任何信息

我想你想要这个:

def pscan(port):
    sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    try:
        sock.connect((target, port))
        with print_lock:
            print("Port:",port,"is open.")
        sock.shutdown()
        sock.close()

另外,如果要在之后立即调用
close
,则无需调用
shutdown

欢迎使用堆栈溢出。请阅读,带上SO,阅读,以及。最后,请学习如何处理您的问题,例如,包括。好的,这是有意义的,我在发布此问题之前已经尝试过了,它确实删除了“错误”,但是它似乎并没有解决脚本无休止运行的问题。我知道这样的东西可以运行相当长的一段时间,但我已经用线程实现了这一点,并且已经成功地结束了以前的迭代;不过,这种情况似乎会永远持续下去。我还遗漏了什么吗?我不知道你所说的“脚本无休止地运行”是什么意思,你只显示了几行套接字代码。