一、简单ssh功能
1.1 实现功能
在前面的一篇博客中,我们已经实现了一个简单的类似Linux服务器ssh功能的小程序,可以输入系统命令来返回命令运行结果,今天我们也以此开始,看看socket如何来接受大量数据。
服务端:
# -*- coding: UTF-8 -*- import os import socket server = socket.socket(socket.AF_INET, socket.SOCK_STREAM) # TCP/IP协议, tcp ,如果不填写就是默认这个 server.bind(('localhost', 9999)) server.listen() while True: # 可以接受多个客户端 conn, addr = server.accept() while True: data = conn.recv(1024) if not data: # 防止当接受的客户端数据为空时,程序卡掉 print('client has lost...') break print('执行命令:', data.decode()) cmd_res = os.popen(data.decode()).read() if len(cmd_res) == 0: print('command not found') else: # 发送数据 conn.send('{}'.format(cmd_res).encode('utf-8')) print('发送完成')