我在本地计算机上运行了一个ssh守护程序。我想无限连接到ssh deamon并回显收到的数据。 这是我的剧本。
[azatuni@noc python-tests]$ cat test.py
#!/usr/bin/python
import socket
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
PORT = 22
DESTIP = '127.0.0.1'
while 1 == 1:
s.connect((DESTIP, PORT))
data = s.recv(1024)
s.close()
print data
但是当我运行脚本时,收到以下错误。但是没有循环,一切正常。
[azatuni@noc python-tests]$ ./test.py
SSH-2.0-OpenSSH_5.3
Traceback (most recent call last):
File "./test.py", line 9, in <module>
s.connect((DESTIP, PORT))
File "<string>", line 1, in connect
File "/usr/lib64/python2.6/socket.py", line 167, in _dummy
raise error(EBADF, 'Bad file descriptor')
socket.error: [Errno 9] Bad file descriptor
事先谢谢。
答案 0 :(得分:-1)
您需要在再次连接之前创建一个新套接字。这适用于您:
#!/usr/bin/python
import socket
PORT = 22
DESTIP = '127.0.0.1'
while 1 == 1:
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect((DESTIP, PORT))
data = s.recv(1024)
s.close()
print data
请注意,您发布的代码中包含错误:
data = s.recv(102SSH-2.0-OpenSSH_5.3