通过socket,实现客户端发送命令,将服务端执行出的结果,反回到客户端,主要4个步骤:
1、服务端返回数据;

2、服务端返回数据的大小;

3、客户端接收返回数据的大小;

4、客户端按返回数据大小接收数据;

一、客户端代码

#客户端
import socket
client=socket.socket() #生成socket连接对象
client.connect(("localhost",6969))
while True:
msg=input(">>>:")
if not msg:
continue
client.send(msg.encode("utf-8")) #发送命令到服务端 ;
cmd_res_size=client.recv(1024) #接收命的长度;
print ("命令结果大小为:",cmd_res_size)
print(type(cmd_res_size.decode()))
cmd_size=0
cmd_data=b''
while cmd_size!=int(cmd_res_size.decode()):
data=client.recv(1024)
cmd_size+=len(data.decode())
cmd_data+=data
else:
print ("cmd received done !",cmd_size)
print (cmd_data.decode())
client.close() 二、服务端
#服务端
import socket,os
so_server=socket.socket()
so_server.bind(("localhost",6969))
so_server.listen()
print ("等电话!")
while True: #实现多个链路连接;
conn,addr=so_server.accept()
print ("电话来了!")
while True:
data = conn.recv(1024)
print (data.decode())
res=os.popen(data.decode("utf-8")).read() #执行客户端命令
cmd_size=len(res)
conn.send(str(cmd_size).encode("utf-8"))
conn.send(res.encode("utf-8"))
so_server.close()
												

网络编程 - socket接收大数据的更多相关文章

  1. python网络编程-socket发送大数据包问题

    一:什么是socket大数据包发送问题 socket服务器端或者客户端在向对方发送的数据大于对方接受的缓存时,会出现第二次接受还接到上次命令发送的结果.这就出现象第一次接受结果不全,第二次接果出现第一 ...

  2. 网络编程基础【day09】:socket接收大数据(五)

    本节内容 1.概述 2.socket接收大数据 3.中文字符的坑 一.概述 上篇博客写到了,就是说当服务器发送至客户端的数据,大于客户端设置的数据,则就会把数据服务端发过来的数据剩余数据存在IO缓冲区 ...

  3. 【python】-- Socket接收大数据

    Socket接收大数据 上一篇博客中的简单ssh实例,就是说当服务器发送至客户端的数据,大于客户端设置的数据,则就会把数据服务端发过来的数据剩余数据存在IO缓冲区中,这样就会造成我们想要获取数据的完整 ...

  4. Socket接收大数据的方法

    byte[] buffer = new byte[BufferSize]; int bytesRead; // 读取的字节数 MemoryStream msStream = new MemoryStr ...

  5. C# TCP socket发送大数据包时,接收端和发送端数据不一致 服务端接收Receive不完全

    简单的c# TCP通讯(TcpListener) C# 的TCP Socket (同步方式) C# 的TCP Socket (异步方式) C# 的tcp Socket设置自定义超时时间 C# TCP ...

  6. python网络编程-socket“粘包”(小数据发送问题)

    一:什么是粘包 “粘包”, 即服务器端你调用时send 2次,但你send调用时,数据其实并没有立刻被发送给客户端,而是放到了系统的socket发送缓冲区里,等缓冲区满了.或者数据等待超时了,数据才会 ...

  7. java网络编程socket解析

    转载:http://www.blogjava.net/landon/archive/2013/07/02/401137.html Java网络编程精解笔记2:Socket详解 Socket用法详解 在 ...

  8. Python网络编程socket

    网络编程之socket 看到本篇文章的题目是不是很疑惑,what is this?,不要着急,但是记住一说网络编程,你就想socket,socket是实现网络编程的工具,那么什么是socket,什么是 ...

  9. java网络编程socket\server\TCP笔记(转)

    java网络编程socket\server\TCP笔记(转) 2012-12-14 08:30:04|  分类: Socket |  标签:java  |举报|字号 订阅     1 TCP的开销 a ...

随机推荐

  1. CSS和JS结合控制样式

    CSS控制样式,毋庸置疑.但有时,仅靠CSS却很难控制好,比如说,页面在多种条件下进行不同的呈现:或者运行过程中,会发生变化,比如说,左侧的菜单栏收缩了,那么右侧的宽度就变大了. 就拿这个元素的wid ...

  2. 2016/1/22 1, 1-100 放集合 特定对象移除 2,List集合和Set集合是否可以重复添加

    package shuzu; import java.awt.List; import java.util.*; public class ListIterator { public static v ...

  3. jvm实例的个数

    Generally speaking, each application will get its own JVM instance and its own OS-level process and ...

  4. the largest value you actually can transmit between the client and server is determined by the amount of available memory and the size of the communications buffers.

    the largest value you actually can transmit between the client and server is determined by the amoun ...

  5. P1197 [JSOI2008]星球大战(并查集判断连通块+正难则反)

    P1197 [JSOI2008]星球大战(并查集判断连通块+正难则反) 并查集本来就是连一对不同父亲的节点就的话连通块就少一个. 题目描述 很久以前,在一个遥远的星系,一个黑暗的帝国靠着它的超级武器统 ...

  6. tomcat调优配置

    今天遇到一个tomcat服务注册后配置Java参数没效果,最后在注册表中删除原来的tomcat服务后,顺便看了一下tomcat的调优配置,看别人总结的不错,就转载一下. Tomcat.Jetty.Gl ...

  7. [置顶][终极精简版][图解]Nginx搭建flv mp4流媒体服务器

    花了我接近3周,历经了重重问题,今日终于把流媒体服务器搞定,赶紧的写个博文以免忘记... 起初是跟着网上的一些教程来的,但是说的很不全面,一些东西也过时不用了(比如jwplayer老版本).我这次是用 ...

  8. JSP-Runood:Eclipse JSP/Servlet 环境搭建

    ylbtech-JSP-Runood:Eclipse JSP/Servlet 环境搭建 1.返回顶部 1. Eclipse JSP/Servlet 环境搭建 本文假定你已安装了 JDK 环境,如未安装 ...

  9. 6章 Models

    传统的MVC结构中,有模型这么一个概念.Django中,Models又是怎么一回事呢? 刚才生成的这些乱七八糟的数据迁移就是Django自带的一些应用 INSTALLED_APPS = [ 'djan ...

  10. SQL Server 方言类型映射问题

    关于SQL Server的类型映射问题,例如,nvarchar无法进行hibernate类型映射,需要通过convert进行类型转换方可进行获取