import socket
import os
file_obj = open('ip.txt')
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
for line in file_obj:
ip = line.split()[0]
p = int(line.split()[1])
try:
s.connect((ip,p))
s.close()
print ip+":"+str(p)+" open"
except:
print ip+":"+str(p)+" close"
file_obj.close()
代码如上
运行结果如下:
C:\pycode>python 1111.py
Began to detect...
127.0.0.1:8080 close
127.0.0.1:80 open
127.0.0.1:80 close
127.0.0.1:80 close
192.168.1.1:80 close
同样是127.0.0.1:80 为什么第一个可以之后就不行了呢?
3 个解决方案
#1
s.close()之后,就不能再重复用了。把 s=...放到循环体内。
import socket
import os
file_obj = open('ip.txt')
for line in file_obj:
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
ip = line.split()[0]
p = int(line.split()[1])
try:
s.connect((ip,p))
s.close()
print ip+":"+str(p)+" open"
except:
print ip+":"+str(p)+" close"
file_obj.close()
#2
python有什么比较好的调试工具呢?
#3
看你在什么下编程,在eclipse下面打断点和其他是一样的。
#1
s.close()之后,就不能再重复用了。把 s=...放到循环体内。
import socket
import os
file_obj = open('ip.txt')
for line in file_obj:
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
ip = line.split()[0]
p = int(line.split()[1])
try:
s.connect((ip,p))
s.close()
print ip+":"+str(p)+" open"
except:
print ip+":"+str(p)+" close"
file_obj.close()
#2
python有什么比较好的调试工具呢?
#3
看你在什么下编程,在eclipse下面打断点和其他是一样的。