黏包 粘包现象 同时执行多条命令之后,得到的结果很可能只有一部分,在执行其他命令的时候又接收到之前执行的另外一部分结果,这种显现就是黏包。 基于tcp协议实现的粘包 server 端 client 端 执行输出: 说明:上图中就是黏包的效应 原理 黏包现象的成因 #你不知道在哪儿断句 解决办法: 在 ...
分类:
编程语言 时间:
2018-05-07 21:40:32
阅读次数:
230
原文在《游戏编程精粹2》的1.2中,BloomFilter是一种可以快速检测是否存在集合包含关系的数据结构,但有一定的误识别率。 该结构的优势 判断包含时效率高,粗略测试了下比List快一倍(不拆分哈希) 由于内部是位数组BitArray,做交集并集几乎不产生开销 该结构的劣势 有一定的误识别率 使 ...
分类:
其他好文 时间:
2018-05-05 11:17:56
阅读次数:
205
一、网络编程的目标 编写一个C/S或B/S架构的基于网络通信的软件 C/S架构:客户端 服务端B/S架构:浏览器 服务端 学习socket编程就是要编写客户端软件和服务端软件,然后实现服务端和客户端基于网络通信 服务端特点:1、不间断地提供服务;2、服务端要支持并发+高性能 二、网络 网络 = 物理 ...
分类:
其他好文 时间:
2018-05-02 20:50:28
阅读次数:
142
Netty系列(四)TCP拆包和粘包 一、拆包和粘包问题 __(1) 一个小的Socket Buffer问题__ 在基于流的传输里比如 TCP/IP,接收到的数据会先被存储到一个 socket 接收缓冲里。不幸的是,基于流的传输并不是一个数据包队列,而是一个字节队列。即使你发送了 2 个独立的数据包 ...
分类:
Web程序 时间:
2018-04-25 22:13:07
阅读次数:
317
前情提要: 只有TCP有粘包现象,UDP永远不会粘包 知识储备: socket收发消息的原理 发送端可以是一K一K地发送数据,而接收端的应用程序可以两K两K地提走数据,当然也有可能一次提走3K或6K数据,或者一次只提走几个字节的数据,也就是说,应用程序所看到的数据是一个整体,或说是一个流(strea ...
分类:
其他好文 时间:
2018-04-23 22:38:26
阅读次数:
193
1.UDP协议介绍(数据报协议) UDP协议不同于TCP,通信时,它不需要事先建立双向链接,并且不区分客户端先启动还是服务端前起,工作原理:基于udp协议传输的信息,协议会将数据自动加上自定义的报头,这样每一个数据都是一个数据报,而流失协议由于自身优化算法,产生粘包现象,udp不会产生粘包现象,并且 ...
分类:
其他好文 时间:
2018-04-23 18:48:37
阅读次数:
186
20 Apr 18 一、上节课复习 1、 TCP(建立的是一个双向连接)三次握手建连接,四次挥手断连接 三次握手: c syn=1 seq=x >s s ack=1+x syn=1 seq=y >c c ack=1+y >s 四次挥手: s fin=1 >c c >ack=1 >s c >fin=1 ...
分类:
其他好文 时间:
2018-04-22 14:23:14
阅读次数:
192
一、粘包现象 让我们基于tcp先制作一个远程执行命令的程序(1:执行错误命令 2:执行ls 3:执行ifconfig) 注意注意注意: res=subprocess.Popen(cmd.decode('utf-8'),shell=True,stderr=subprocess.PIPE,stdout= ...
分类:
编程语言 时间:
2018-04-22 13:04:18
阅读次数:
262
一、粘包现象 只有TCP有粘包现象,UDP永远不会粘包 res=subprocess.Popen(cmd.decode('utf-8'),shell=True,stderr=subprocess.PIPE,stdout=subprocess.PIPE) 的结果的编码是以当前所在的系统为准的,如果是w ...
分类:
其他好文 时间:
2018-04-20 16:00:44
阅读次数:
172
上个小节我们浅析了在Netty的使用的时候TCP的粘包和拆包的现象,Netty对此问题提供了相对比较丰富的解决方案 Netty提供了几个常用的解码器,帮助我们解决这些问题,其实上述的粘包和拆包的问题,归根结底的解决方案就是发送端给远程端一个标记,告诉远程端,每个信息的结束标志是什么,这样,远程端获取 ...
分类:
其他好文 时间:
2018-04-16 20:37:20
阅读次数:
195