0
点赞
收藏
分享

微信扫一扫

day09_python socket ssh交互


1.a.accept() 和a.recv()都是阻塞的,基于链接正常

3.s.listen(n)代表能挂起的链接数,如果n等于1代表可以链接一个,挂起一个,就是后面可以排队等一个,第三个拒绝

4.

以上是服务端代码

#__author__ = 'DouYunQian'
#coding=utf-8
import socket
client=socket.socket()
ip_addr=("127.0.0.1",9958)
client.connect(ip_addr)
while True:
data=input("cmd >>>")
if len(data)==0:continue
if data=="exit":break
client.sendall(bytes(data,encoding="utf-8"))
rec_data=client.recv(1024)
print(str(rec_data,"utf-8"))


client.close()

客户端代码如下:

#__author__ = 'DouYunQian'
#coding=utf-8


#
# python模拟ssh交互
#
import socket,subprocess
from sys import stdout
server_po=socket.socket()
ip_addr=("127.0.0.1",9958)
server_po.bind(ip_addr)
server_po.listen(5)
while True:
con,addr=server_po.accept()
while True:
try:
rece_data=con.recv(1024)
if len(rece_data)==0:break
p=subprocess.Popen(str(rece_data,"utf-8"),shell=True,stdout=subprocess.PIPE)
win_data=p.stdout.read()
if len(win_data)==0:
send_data="cmd error"
else:
send_data=str(win_data,encoding="gbk")
con.sendall(bytes(send_data,encoding="utf-8"))
except Exception:
break
con.close()
server_po.close()







举报

相关推荐

0 条评论