功能:实现从客户端向服务端发送cmd指令,服务端将结果返回给客户端的功能。

#coding:utf-8
'''服务端'''
import socket,os
server=socket.socket() #创建对象
server.bind(('localhost',2345)) #绑定监听端口(服务器端的IP地址和端口)
server.listen(5) #开始监听TCP传入连接,5指定在拒绝连接之前,操作系统可以挂起的最大连接数量(tcp连接队列的大小,即连接数)
while True:
print'传输数据过来吧。。。'
conn,addr=server.accept() #与客户端建立连接
while True:
print '开始接受数据'
data=conn.recv(1024) #一次允许接受的数据大小
print '数据是:%s'%data
if len(data)==0:
print '没有传数据'
break
data_po=os.popen(data).read() #将命令结果读到data_po中
print '输出内容长度:',len(data_po)
print data_po
print type(data_po)
if len(data_po)==0:
data_po= '输入的命令有误! '
conn.send(str(len(data_po))) #发送总数据的大小给客户端,send里面必须是str类型。
conn.send(data_po)
print isinstance(data_po, unicode) #发送数据给客户端,客户端收到多少数据,取决于它设定可以接受数据的大小。
server.close() #关闭服务端
#coding:utf-8
'''客户端'''
import socket
client=socket.socket()
client.connect(('localhost',2345)) #连接端的IP地址和端口号(这里写的是服务端的IP地址和端口号)
a=0 #统计接受数据的总大小
while True:
data_cl=raw_input('>>:').strip() #输入
if len(data_cl)==0: #不能输入回车、空格字符
print '输入错误,请重新输入'
continue
client.send(data_cl) #发送输入的指令
data_lp=client.recv(1024) #接受服务端数据的大小
while a<=data_lp: #如果接受数 据比总量小,将继续接受,直到接受数的大小大于总量大小
data=client.recv(1024) #一次允许接受的数据大小,通过while循环可以多少实现接受信息量比较大的数据。
a=a+len(data)
print '输出数据长度:',a
print data
data_cl=raw_input('>>:').strip() #输入
client.close() #关闭客户端

python 通过socket实现ssh功能的更多相关文章

  1. (转)python通过paramiko实现,ssh功能

    python通过paramiko实现,ssh功能 1 import paramiko 2 3 ssh =paramiko.SSHClient()#创建一个SSH连接对象 4 ssh.set_missi ...

  2. python之socket-ssh实例

    本文转载自大王http://www.cnblogs.com/alex3714/articles/5830365.html 加有自己的注释,应该会比原文更突出重点些 一. 基本Socket实例 前面讲了 ...

  3. Python 简单socket模拟ssh

    OSI七层模型(Open System Interconnection,开放式系统互联) 应用层 表示层 回话层 传输层 tcp,udp 网络层 ip,icmp 数据链路层 mac地址 物理层 物理网 ...

  4. Python之Socket&异常处理

    Socket Socket用于描述IP地址和端口号,每个应用程序都是通过它来进行网络请求或者网络应答. socket模块和file模块有相似之处,file主要对某个文件进行打开.读写.关闭操作.soc ...

  5. python通过socket实现多个连接并实现ssh功能详解

    python通过socket实现多个连接并实现ssh功能详解 一.前言 上一篇中我们已经知道了客户端通过socket来连接服务端,进行了一次数据传输,那如何实现客户端多次发生数据?而服务端接受多个客户 ...

  6. 运用socket实现简单的ssh功能

    在python socket知识点中已经对socket进行了初步的了解,那现在就使用这些知识来实现一个简单的ssh(Secure Shell)功能. 首先同样是建立两个端(服务器端和客户端) 需求是: ...

  7. 通过socket实现多个连接并实现ssh功能

    一.前言 上一篇中我们已经知道了客户端通过socket来连接服务端,进行了一次数据传输,那如何实现客户端多次发生数据?而服务端接受多个客户端呢? 二.发送中文信息 在python3中,socket只能 ...

  8. Python基于socket模块实现UDP通信功能示例

    Python基于socket模块实现UDP通信功能示例 本文实例讲述了Python基于socket模块实现UDP通信功能.分享给大家供大家参考,具体如下: 一 代码 1.接收端     import ...

  9. python之Socket网络编程

    什么是网络? 网络是由节点和连线构成,表示诸多对象及其相互联系.在数学上,网络是一种图,一般认为专指加权图.网络除了数学定义外,还有具体的物理含义,即网络是从某种相同类型的实际问题中抽象出来的模型.在 ...

随机推荐

  1. .net EasyTree显示所级层级(无限级、整层级颗树)的另类写法。非递归

    获取整颗树的另类写法.非递归 //获取所有的菜单 List<T_Menu> menu = bll.getMenuByUsesrID("8189a7c1-6f15-4744-b6c ...

  2. 5 分钟全面掌握 Python 装饰器

    ♚ 作者:吉星高照, 网易游戏资深开发工程师,主要工作方向为网易游戏 CDN 自动化平台的设计和开发,脑洞比较奇特,喜欢在各种非主流的领域研究制作各种不走寻常路的东西. ! Python的装饰器是面试 ...

  3. 给Office文档添加水印效果【测试有效】

    private void button1_Click(object sender, EventArgs e) { string test1 = "C:\\test.docx";// ...

  4. 为什么使用 document.write 需要将</script>拆分开

    福州SEO:细心点的朋友可能会注意到,有些网站使用document.write动态加载JS的时候需要把</script>拆分开来写?如下面的例子所示: <script type='t ...

  5. LoggingService

    package me.zhengjie.common.aop.log; import java.lang.annotation.ElementType; import java.lang.annota ...

  6. Python - 使用 xlwt 写入表格

    # -*- coding: utf-8 -*- import xlwt def write_excel(): f = xlwt.Workbook() fenlei = ['一类','二类','三类', ...

  7. poj 1463树形dp 树的最小覆盖

    #include<iostream> #include<cstdio> #include<cstring> #include<algorithm> #i ...

  8. Sass入门指南

    转自:http://www.imooc.com/article/1413 css预处理器已经算不上一个新鲜的词了,当前比较有代表性的css预处理器有sass.less.stylus.关于三者选择问题一 ...

  9. ZooKeeper基本讲解及使用

    本文摘录于:http://blog.51cto.com/tchuairen/1859494:https://blog.csdn.net/peace1213/article/details/525714 ...

  10. python与模块的导入方式

    今日所得 模块 import from...import... 循环导入 相对导入 绝对导入 软件开发目录规范 模块 模块:是一系列功能的集合体 模块的三种来源:1.内置模块(Python解释器自带的 ...