简单ssh

#!/usr/bin/env python
#-*- coding:utf-8 -*-
# datetime:2019/5/22 14:20
# software: PyCharm
#服务端
import socket
import os
post=('192.168.222.131',9090)#设置端口和
socket_obj=socket.socket()
socket_obj.bind(post)
socket_obj.listen(5)
print("服务在等候客户端。。。")
while True:
    con,adrss=socket_obj.accept()
    try:
        print("客户端来啦",con,adrss)
        while True:
            recvs=con.recv(1024).decode("utf-8")
            if recvs=='exit':
                con.send("0".encode("utf-8"))
                con.send("退出连接。。".encode("utf-8"))
                con.close()#如果发来是exit关闭临街
            content=os.popen(recvs).read()
            lens=len(content)
            if lens==0:
                content="指令没有什么返回值"
            print(content)
            con.send(str(lens).encode("utf-8"))
            con.send(content.encode("utf-8"))
    except Exception as e:
        print(e)
        con.close()#关闭当前连接
socket_obj.close()
#!/usr/bin/env python
#-*- coding:utf-8 -*-
# datetime:2019/5/22 14:23
# software: PyCharm
#客户端
import socket
import time
post=('192.168.222.131',9090)
socket_obj=socket.socket()
socket_obj.connect(post)
while True:
    sends=input(">>>").strip()
    if not sends:
        continue
    socket_obj.send(sends.encode("utf-8"))#发送消息到客户端
    cout_len=socket_obj.recv(1024)
    if not cout_len.decode("utf-8"):
        print("正在退出。。")
    else:
        lennss=0
        while int(cout_len.decode("utf-8"))>lennss:
            recvs=socket_obj.recv(1024)
            lennss+=len(recvs.decode("utf-8"))
            print(recvs.decode("utf-8"))
        else:
            print("收完啦")
    if sends=="exit":
        time.sleep(2)
        break
socket_obj.close()

 

posted @ 2019-05-22 16:14  leo0362  阅读(130)  评论(0)    收藏  举报