最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

python学习socket---ssh

来源:动视网 责编:小采 时间:2020-11-27 14:14:17
文档

python学习socket---ssh

python学习socket---ssh:用scoket 写一个简版的ssh服务端: 1 #!usr/bin/env python 2 #-*-coding:utf-8-*- 3 # Author calmyan 4 5 import socket,os 6 7 s=socket.socket()#实例化一个 socket 8 9 s.bind(('localhost',
推荐度:
导读python学习socket---ssh:用scoket 写一个简版的ssh服务端: 1 #!usr/bin/env python 2 #-*-coding:utf-8-*- 3 # Author calmyan 4 5 import socket,os 6 7 s=socket.socket()#实例化一个 socket 8 9 s.bind(('localhost',
 用scoket 写一个简版的ssh

服务端:

 1 #!usr/bin/env python 2 #-*-coding:utf-8-*- 3 # Author calmyan 4 5 import socket,os 6 7 s=socket.socket()#实例化一个 socket 8 9 s.bind(('localhost',9100))#绑定一个监听端口10 11 s.listen(5)#监听列表 5 个12 print('监听中...')13 while True:14 conn,addr=s.accept()#监听到新的接连15 print('连接到新的地址:',addr)16 while True:17 data=conn.recv(4092)#接收数据18 if not data:#如果收的数据为空19 print('客户端已经断开!')20 break21 print('指令:',data.decode())22 cmd_res=os.popen(data.decode()).read()#读取数据,指令23 #cmd_res_l=len(cmd_res.encode('utf-8'))#数据大小24 25 if len(cmd_res)==0:26 cmd_res='指令错误!'27 continue28 #conn.recv(1)29 conn.send(str(len(cmd_res.encode('utf-8'))).encode('utf-8') )#发送数据的大小30 #print(len(cmd_res))31 clinet_ack=conn.recv(1024)#为了去粘包32 33 conn.send(cmd_res.encode('utf-8'))#发送指令34 #print(cmd_res.encode('utf-8'))35 print('发送完毕!')36 else:37 s.close()

客户端:

 1 #!usr/bin/env python 2 #-*-coding:utf-8-*- 3 # Author calmyan 4 import socket 5 c=socket.socket()#实例化一个socket 6 7 c.connect(('localhost',9100))#客户端连联 8 while True: 9 cho=input('指令:').strip()10 if len(cho)==0:continue11 c.send(cho.encode('utf-8'))#发送数据12 cmd_res_size=c.recv(1024)#接收数据 数据大小13 print('数据大小:',cmd_res_size)14 size_l=0#收数据当前大小15 c.send('确认!'.encode('utf-8'))#为了去粘包16 while size_l< int(cmd_res_size.decode()):17 data=c.recv(1024)#开始接收数据18 size_l+=len(data)#加上19 print(data.decode())20 print(size_l)21 else:22 print('接收完毕',size_l)

在win10下,recv(1024)的时候ipconfig指令 会出错,其它的命令暂时没发现

文档

python学习socket---ssh

python学习socket---ssh:用scoket 写一个简版的ssh服务端: 1 #!usr/bin/env python 2 #-*-coding:utf-8-*- 3 # Author calmyan 4 5 import socket,os 6 7 s=socket.socket()#实例化一个 socket 8 9 s.bind(('localhost',
推荐度:
标签: 学习 python ssh
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top