用Python写一个使用socket执行指令并实现交互的代码
时间: 2024-05-06 19:20:05 浏览: 16
以下是一个使用socket执行指令并实现交互的Python代码:
```python
import socket
import subprocess
HOST = '127.0.0.1' # 监听的IP地址
PORT = 8888 # 监听的端口号
# 创建socket对象
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# 绑定IP地址和端口号
s.bind((HOST, PORT))
# 开始监听
s.listen(1)
print('Listening on {}:{}'.format(HOST, PORT))
while True:
# 等待客户端连接
conn, addr = s.accept()
print('Connected by', addr)
while True:
# 接收客户端发送的数据
data = conn.recv(1024)
if not data:
break
# 执行客户端发送的指令,并将结果发送给客户端
cmd = subprocess.Popen(data, shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE, stdin=subprocess.PIPE)
output_bytes = cmd.stdout.read() + cmd.stderr.read()
output_str = output_bytes.decode('utf-8')
conn.sendall(output_str.encode('utf-8'))
# 关闭连接
conn.close()
```
这个代码使用了Python的socket库来创建了一个可以监听指定IP地址和端口号的socket对象。当客户端连接时,它会接收客户端发送的指令,并使用subprocess库来执行这些指令。然后将执行结果发送给客户端。如果客户端断开连接,则关闭连接。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)