一、简单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('发送完成')
View Code

相关文章:

  • 2021-09-01
  • 2022-12-23
  • 2022-12-23
  • 2021-05-31
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-08-06
猜你喜欢
  • 2022-12-23
  • 2021-12-11
  • 2021-06-20
  • 2021-12-01
  • 2022-12-23
  • 2021-05-29
相关资源
相似解决方案