ssh_socket.py

ssh_socket_client

import socket
import os
client = socket.socket()
client.connect(('192.168.171.129',2))
while True:
    cmd = input(">>:").strip()
    if len(cmd) == 0: continue
    client.send(cmd.encode('utf-8'))
    cmd_res_size = client.recv(1024) ##接受命令结果长度
    #print("命令结果长度",cmd_res_size)
    client.send("可以发数据了".encode("utf-8"))
    received_size = 0
    while received_size < int(cmd_res_size.decode()):
        data = client.recv(1024)
        received_size += len(data)#每次收到的可能小于1024,所有必须用len判断
        #print(data.decode())
    else:
        print(data.decode())
        print("命令结果长度", cmd_res_size)
        print("cmd received done..发送长度",received_size)
        #cmd_res = client.recv(1024)
        #print(cmd_res.decode())
client.close()

 

 

ssh_socket_server

import socket
import os

server = socket.socket()
server.bind(('0.0.0.0',2))
server.listen(10)

while True:
    print("开始接收指令:")
    conn,addr = server.accept()
    print("new conn:",addr)
    while True:
        print("等待新指令:")
        data = conn.recv(1024)
        if not data:
            print("客户端已断开")
            break
        print("执行指令:",data)
        cmd_res = os.popen(data.decode()).read()#接受字符串,收也为字符串
        print("before send",len(cmd_res))
        if len(cmd_res) == 0:
            print("received none")
        conn.send(str(len(cmd_res.encode())).encode("utf-8"))
        #time.sleep(0.5)
        client_ack = conn.recv(1024)#wait cclient to confirm
        conn.send(cmd_res.encode("utf-8"))
        print("send done")
server.close()

 

posted @ 2017-11-07 22:29  whz_it  阅读(129)  评论(0编辑  收藏  举报