使用 python 无限循环连接到套接字
Connect to socket in infinate loop with python
我的本地计算机上有一个 ssh 守护程序 运行ning。我想无限连接到 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
先谢谢了。
您需要在再次连接之前创建一个新的套接字。这将适用于您的:
#!/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
我的本地计算机上有一个 ssh 守护程序 运行ning。我想无限连接到 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
先谢谢了。
您需要在再次连接之前创建一个新的套接字。这将适用于您的:
#!/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