一、粘包 1. 粘包现象 ? 以上两个服务器和客户端,当服务端发送的内容超过1024时,客户端并不会将内容一次全部读取出来,而会在客户端下次输入命令时将上次剩余的内容读取出来,而下次命令的结果又会滞留到下下次。这种现象就是粘包,它与系统缓冲区有关。 | | 服务端 | 客户端 | | | | | | ...
分类:
编程语言 时间:
2019-07-20 15:44:16
阅读次数:
92
tcp协议 client.py 修改版 server.py client.py UDP的基本用法 server.py client.py 粘包问题 server.py client.py serversocket模块 server.py client.py ...
分类:
其他好文 时间:
2019-07-20 13:02:58
阅读次数:
75
79.http 响应码 301 和 302 代表的是什么?有什么区别? 80.forward 和 redirect 的区别? 81.简述 tcp 和 udp的区别? 82.tcp 为什么要三次握手,两次不行吗?为什么? 83.说一下 tcp 粘包是怎么产生的? 84.OSI 的七层模型都有哪些? 8 ...
分类:
其他好文 时间:
2019-07-11 11:13:37
阅读次数:
147
一 .黏包现象(TCP) 1.黏包成因 2.基于tcp协议实现的黏包 情况二 接收方的缓存机制 接收方不及时接收缓冲区的包,造成多个包接收(客户端发送了一段数据,服务端只收了一小部分,服务端下次再收的时候还是从缓冲区拿上次遗留的数据,产生粘包) 总结 黏包现象只发生在tcp协议中: 1.从表面上看, ...
分类:
其他好文 时间:
2019-07-05 00:01:31
阅读次数:
129
TCP遗留问题 粘包 TCP发送数据的四种情况: 假设客户端分别发送了两个数据包D1和D2给服务端,由于服务端一次读取到的字节数是不确定的,故可能存在以下4种情况。 服务端分两次读取到了两个独立的数据包,分别是D1和D2,没有粘包和拆包; 服务端一次接收到了两个数据包,D1和D2粘合在一起,被称为T ...
分类:
其他好文 时间:
2019-06-29 01:18:22
阅读次数:
106
粘包解决方案: 思路:服务端传输数据前 提前 告知客户端传输数据的大小 客户端 服务端 使用UDP进行传输数据 客户端 服务端 ...
分类:
其他好文 时间:
2019-06-29 01:04:13
阅读次数:
129
[TOC] 什么是粘包? 注意:只有TCP有粘包现象,UDP永远不会粘包,为何,且听我娓娓道来。 首先需要掌握一个socket收发消息的原理 发送端可以是一K一K地发送数据,而接收端的应用程序可以两K两K地提走数据,当然也有可能一次提走3K或6K数据,或者一次只提走几个字节的数据,也就是说,应用程序 ...
分类:
其他好文 时间:
2019-06-16 14:09:53
阅读次数:
122
解决粘包和拆包问题 上一篇我们介绍了如果使用Netty来开发一个简单的服务端和客户端,接下来我们来讨论如何使用解码器来解决TCP的粘包和拆包问题 我们知道,TCP是以一种流的方式来进行网络转播的,当tcp三次握手简历通信后,客户端服务端之间就建立了一种通讯管道,我们可以想象成自来水管道,流出来的水是 ...
分类:
其他好文 时间:
2019-06-09 12:58:53
阅读次数:
110
tcp套接字和udp套接字编程区别 1.流式套接字是以字节流方式传输数据,数据报套接字以数据报形式传输 2.tcp套接字会有粘包,udp套接字有消息边界不会粘包 3.tcp套接字保证消息的完整性,udp套接字则不能 4.tcp套接字依赖listen accept建立连接才能收发消息,udp套接字则不 ...
分类:
编程语言 时间:
2019-06-07 21:00:12
阅读次数:
107
一.什么是socket 二.为什么需要socket 三.socket的发展 四.python中的socket 五.基于TCP的socket 六.基于UDP的socket 六. 粘包问题详解 七.粘包的解决方案 八.socketserver实现并发通讯 引入:为什么一定要先学习网络协议? 之所以学习网 ...
分类:
其他好文 时间:
2019-06-01 13:50:32
阅读次数:
102