您的位置:首页 > 编程语言 > Python开发

day09_python socket ssh交互

2016-08-12 17:19 141 查看
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()
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: