简单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("".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()
简单ssh的更多相关文章
- 简单ssh框架整合
Struts2+Spring4 +Hibernate4 首先看看建立项目的框架 第一步 建立web项目 第二步 导入相对应需要的jar包(放在项目WEB-INFO/lib下) 需要导入Spring ...
- 网络编程基础【day09】:通过socket实现简单ssh客户端(三)
本节内容 1.概述 2.socket发送中文 3.重复发送和多次接收 4.模拟ssh客户端 一.概述 本篇博客讲一下,如果socket客户端断了,另外的客户端怎么接入服务端,还有模拟ssh的链接等. ...
- 简单ssh建立 (paramiko)
SSH为建立在应用层和传输层基础上的安全协议.SSH是目前较可靠,专为远程登录会话和其他网络服务提供安全性的协议.利用SSH协议可以有效防止远程管理过程中的信息泄露问题. import paramik ...
- 基于注解的简单SSH保存用户小案例
需求:搭建SSH框架环境,使用注解进行相关的注入(实体类的注解,AOP注解.DI注入),保存用户信息 效果: 一.导依赖包 二.项目的目录结构 三.web.xml配置 <?xml version ...
- 网络编程基础【day09】:实现简单地ssh(四)
本节内容 概述 简单ssh socket接收大数据的困惑 一.概述 我们用过linux的就知道什么是ssh,它是一种客户端和服务端交互返回的一个解决,输入一个命令,给我返回什么,接下来我们说一说,如何 ...
- SSH整合简单例子
说明:简单SSH整合,struts版本2.3.32,spring版本3.2.9,hibernate版本3.6.10 一.开发步骤 1 引jar包,创建用户library.使用的包和之前博文相同,可以参 ...
- Ubuntu 搭建简单的git server
Git 可以使用四种主要的协议来传输资料:本地协议(Local),HTTP 协议,SSH(Secure Shell)协议及 Git 协议. 在此,我们将会讨论那些协议及哪些情形应该使用(或避免使用)他 ...
- paramiko 实现ssh登录和sftp登录
简单ssh登录 import paramiko ssh = paramiko.SSHClient() ssh.set_missing_host_key_policy(paramiko.AutoAddP ...
- ssh 端口转发实现外网 80 端口映射到内网 80 端口
开发中经常需要外网服务映射到本机内网服务的需要,便于调试. 以前都是同事帮着配,这两天自己也看了一下 ssh 端口转发. 同事分分钟钟搞定的事情,自己折腾了 2 天, 真是弱爆了. 最初老想不明白一件 ...
随机推荐
- 将图片至于jsp页面上(层)
<div style="position: relative"> <span style="position: relative; top: 1px; ...
- angularJs中对时间戳的处理
一. ng表达式 <!-- 表达式中使用 --> {{ dt1 | date:'yyyy-MM-dd HH:mm:ss' }} 二. 控制器中使用 //controller必须注入 $fi ...
- Linux表面工作
https://www.cnblogs.com/welhzh/p/5899875.html 1.显示文本文件的内容 /etc/issue #登录前提示 /etc/motd #登录后提示 ssh ...
- day14内置函数作业详解
day14题目 day14作业及默写 1,整理今天所学内容,整理知识点,整理博客. 2,画好流程图. 3,都完成的做一下作业(下面题都是用内置函数或者和匿名函数结合做出): 4,用map来处理字符串列 ...
- Groovy xlsx
如果在JMeter安装的“bin”文件夹下有Excel(xlsx)文件,则test.xlsx可以使用以下方法动态填充请求参数: 将tika-app.jar添加到JMeter Classpath 重新启 ...
- DropDownList 不能绑定多个值错误!
ListItem item = new ListItem("--请选择--",""); ddlstPurchaser.Items.Insert(0, item) ...
- Caused by: MetaException(message:Hive Schema version 2.1.0 does not match metastore's schema version 1.2.0 Metastore is not upgraded or corrupt)
解决方案汇总: ()删除HDFS上的hive数据与hive数据库 hadoop fs -rm -r -f /tmp/hive hadoop fs -rm -r -f /user/hive ()删除My ...
- 如何直接修改cf,of等标志位的值?
如何直接修改 cf,of 等 标志寄存器位的值? 我记得在哪个教程里见过,但是不太记得了… 貌似是在yjx驱动教程里面… 我想弄这个的原因是想验证 网上查到的 各种跳转语句(ja,jl,jg等) 需要 ...
- Oracle视图,索引,序列
什么是视图[View] (1)视图是一种虚表 (2)视图建立在已有表的基础上, 视图赖以建立的这些表称为基表(3)向视图提供数据内容的语句为 SELECT 语句,可以将视图理解为存储起来的 SELEC ...
- 如何 求Ifeature 的面积
IArea pArea = pfteature_Source.Shape as IArea;// IArea来自geometry double dArea = Math.Round(pArea.Ar ...