Stay hungry, Stay foolish

python编写一个ssh(socket练习)

Posted on By zzk

题目

用python的socket模块编写一个ssh,实现基本的cmd命令。

流程图

python-socket-ssh

主要功能

调用os模块

import os
os.popen(cmd).read()

socket发送和接收

import socket
socket.send(bytes)
socket.recv(1024)  # 官方建议最大8192

知识丶总结

  • socket.send()发送bytes数据类型,中文需要encode()
  • 在发送前数据前先发送数据大小,给予接收方循环接收的满足条件
  • 在发送数据大小后并不立即发送数据,以免数据大小和数据发生粘包(同时存入缓存区同时发送),要先接收一下对方的确认信号再发送数据。即,在发送数据大小和数据之间进行一次握手。

源代码

server: https://github.com/artintZ/python/blob/master/day8/sock_server_ssh.py

client: https://github.com/artintZ/python/blob/master/day8/sock_client_ssh.py