我正在使用python 3.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中实现这一点时,我会看到以下消息:"在"None"中找不到引用"shutdown"one_answers"在"无"中找不到引用"关闭">
代码运行,但似乎从未停止。。。我猜这是由于没有正确关闭插座造成的。
有人能告诉我我的错误在哪里吗?
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
。