Socket-实例
import socket,os,time
server = socket.socket()
server.bind(("localhost",9999))
server.listen() while True:
conn,addr=server.accept()
print("new conn",addr)
while True:
print("等待新指令")
data =conn.recv(1024)
if not data:
print("客户端已断开!")
break
print("执行命令:",data)
cmd_res = os.popen(data.decode()).read()#接收字符串,执行结果也是字符串
print("before send",len(cmd_res))
if len(cmd_res) == 0:
cmd_res = "cmd has no output..." conn.send(str(len(cmd_res.encode())).encode("utf-8")) #先发大小给客户端
#time.sleep(0.5)
client_ack =conn.recv(1024)#wait client to confirm 防止粘包
conn.send(cmd_res.encode("utf-8"))
print("send done") server.close()
上面是服务端socket_server.py
import socket
client =socket.socket()
client.connect(("localhost",9999)) while True:
cmd = input(">>:").strip()
if len(cmd)==0:
continue
client.send(cmd.encode("utf-8"))
cmd_res_size =client.recv(1024)#接收命令结果的长度
print("命令结果大小:",cmd_res_size)
client.send("准备好接收了,loser可以发了".encode("utf-8"))#防止粘包
received_size=0
received_data=b''
while received_size < int(cmd_res_size.decode()):
data =client.recv(1024)
received_size +=len(data)#每次收到的有可能小于1024,所以用len判断
received_data +=data
else:
print("cmd res receive done...",received_size)
print(received_data.decode())
client.close()
上面是客户端socket_client.py
Socket-实例的更多相关文章
- 网络编程基础【day09】:简单socket实例(二)
本节内容 1.概述 2.socket实例 3.总结 一.概述 之前我们只是介绍了soket的概念和一些逻辑图表,下面我们来看看,socket的客户端和服务端到底是怎么用的? 二.socket实例 2. ...
- java tcp socket实例
java tcp socket实例 2011-04-20 13:58 2364人阅读 评论(1) 收藏 举报 socketjavatcpthreadserverclass package com.ne ...
- socket实例2
第二个实例创建一个java工程,基于tomcat服务器,程序运行时会启动客户端,实现了一个客户端向其他的客户端发送即时信息的功能 MainWindow.java package com.jikexue ...
- python socket实例练习
Web Server是基于Socket编程,又称之为网络编程,socket是网络编程接口,socket可以建立网络连接,读数据,写数据.socket模块定义了一些常量参数,用来指定socket的的地址 ...
- C # socket 实例
同步客户端存储示例 下面的示例程序创建连接到服务器的客户端. 客户端使用一个同步套接字生成,因此,客户端应用程序的执行挂起,直到服务器返回响应. 应用程序将字符串发送到服务器 ...
- py测试一个Socket实例
本实例旨在了解py和socket的一些相关知识. 1.服务器端搭建py监听程序. 在客户端搭建python,linux默认自带了python2.7,先不管安装了. 接着编写socket程序,可以在本地 ...
- python socket实例
1.客户端向服务端发送 #coding:utf-8 '''客户端''' import socket khd=socket.socket() #声明socket类型,同时生产socket连接对象 khd ...
- 简单的php socket 实例
server: <?php set_time_limit(0); $ip = '127.0.0.1'; $port = 8888; // 1. 创建 if( ($sock = socket_cr ...
- socket实例1
第一个例子创建了一个java工程,用来测试Socket的连接功能,通过浏览器可访问,地址为:127.0.0.1:端口号 MyServerSocket.java, package com.jikexue ...
- java Socket实例
可以实现客户端与服务端双向通信,支持多客户端连接,客户端断开连接,服务端不会出现异常 服务端代码: package com.thinkgem.jeesite.modules.socketTest.de ...
随机推荐
- mybatis之<trim
1.<trim prefix="" suffix="" suffixOverrides="" prefixOverrides=&quo ...
- JAVA之G1与CMS垃圾回收
G1 GC,全称Garbage-FirstGarbage Collector,通过-XX:+UseG1GC参数来启用,作为体验版随着JDK 6u14版本面世,在JDK 7u4版本发行时被正式推出,相信 ...
- IntelliJ IDEA 2017.3 搭建一个多模块的springboot项目(三)
你得先看完前两篇文章才可以进行第三章.这章我又新建了一个模块,起名叫project-core.建立方式与(一)里面一致,一个普通的maven模块.不需要勾选archetype的那种. 大家自己建好后, ...
- FFmpeg之avformat_alloc_context()
1. avformat_alloc_context /** * Allocate an AVFormatContext. * avformat_free_context() can be used t ...
- NUnit -- Test discovery or execution might not work for this project
[7/31/2019 2:06:58.100 PM Warning] No test matches the given testcase filter `FullyQualifiedName=Sil ...
- zookeeper备忘
ZooInspector https://issues.apache.org/jira/secure/attachment/12436620/ZooInspector.zip 参考:https://b ...
- C++ STL——C++容器的共性和相关概念
目录 一 STL容器共性机制 二 STL容器的使用场合 三 函数对象 四 谓词 五 内建函数对象 六 函数对象适配器 注:原创不易,转载请务必注明原作者和出处,感谢支持! 注:内容来自某培训课程,不一 ...
- easyUI之progressbar进度条
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <hea ...
- 小D课堂 - 新版本微服务springcloud+Docker教程_5-01分布式核心知识之熔断、降级
笔记: 第五章 互联网架构服务降级熔断 Hystrix 实战 1.分布式核心知识之熔断.降级讲解 简介:系统负载过高,突发流量或者网络等各种异常情况介绍,常用的解决方案 1.熔断: ...
- 创建使用Spring Boot
Spring Boot 创建项目 Spring Initializr 创建完成会自动下载 解压后 Idea导入 修改国内镜像 网络不够强的话停掉自动更新 build.gradle 加上 reposit ...