socketserver模块使用与源码分析 前言 在前面的学习中我们其实已经可以通过socket模块来建立我们的服务端,并且还介绍了关于TCP协议的粘包问题。但是还有一个非常大的问题就是我们所编写的Server端是不支持并发性服务的,在我们之前的代码中只能加入一个通信循环来进行排队式的单窗口一对一服 ...
分类:
其他好文 时间:
2020-06-29 09:36:03
阅读次数:
54
TCP协议粘包问题详解 前言 在本章节中,我们将探讨TCP协议基于流式传输的最大一个问题,即粘包问题。本章主要介绍TCP粘包的原理与其三种解决粘包的方案。并且还会介绍为什么UDP协议不会产生粘包。 基于TCP协议的socket实现远程命令输入 我们准备做一个可以在Client端远程执行Server端 ...
分类:
其他好文 时间:
2020-06-28 15:37:14
阅读次数:
53
向容器中添加一个自定义的认证类实现UserDetailsService 在这个类里面就可以进行用户类型的判断,包括三类用户(管理员使用内存认证,老师和学生都使用数据库认证) 然后在 ` import org.apache.commons.logging.LogFactory; import org. ...
分类:
编程语言 时间:
2020-06-22 15:24:59
阅读次数:
58
第一篇博客 本博文非专业博文: 另引自百科(百度汉语百科): 粘是多音字,读音为zhān和nián。 读作nián时,词性是形容词,指具有粘性,另外,粘氏原本是女真族。 读作zhān时,词性是动词,指黏的东西互相连接或附着在别的东西上;用胶水或糨糊等把一种东西胶合在另一种东西上。 正文: 本博文主要 ...
分类:
其他好文 时间:
2020-06-20 21:30:39
阅读次数:
133
一、什么是粘包拆包? 粘包拆包是TCP协议传输中一种现象概念。TCP是传输层协议,他传输的是“流”式数据,TCP并不知道传输是哪种业务数据,或者说,并不关心。它只是根据缓冲区状况将数据进行包划分,然后进行传输。 在这个前提下,就有可能发生发生同一个业务数据被分割程多个数据包,或者多个业务数据被打包到 ...
分类:
其他好文 时间:
2020-06-20 16:37:03
阅读次数:
48
Netty4 自定义Decoder,Encoder 首先我们必须知道Tcp粘包和拆包的,TCP是个“流”协议,所谓流,就是没有界限的一串数据,TCP底层并不了解上层业务数据的具体含义,它会根据TCP缓冲区的实际数据进行包的划分,一个完整的包可能会被拆分成多个包进行发送,也有可能把多个小的包封装成一个 ...
分类:
Web程序 时间:
2020-06-15 13:48:07
阅读次数:
79
1、padStart padEnd(count, 字符串) 补全字符串 //padStart(num,str) padEnd补全一个字符串的长度 //num表示补全到几位,str是用来填充的字符串 { let str = 'i'; let str1 = str.padStart(6,'mooc') ...
分类:
其他好文 时间:
2020-06-14 01:06:02
阅读次数:
92
// 封装type,区分typeof方法 // 1)先分类,原始值,引用值 // 2)区分引用值,先判断是不是null // 数组,对象,包装类(new number )会返回object,通过Object.prototype.toString function type(target){ var ...
分类:
其他好文 时间:
2020-06-01 20:32:46
阅读次数:
65
使用的协议是tcp,由于tcp协议传输数据的时候会有粘包现象,所以为了解决消除这个现象,又编写了两个工具函数Encode和Decode 消除粘包现象的方法是在自定义一个应用层协议,他的内容为每次发送的数据包的前4个字节表示数据的长度,然后后面才是真正发送的数据 首先是工具包: proto.go pa ...
分类:
编程语言 时间:
2020-06-01 13:49:25
阅读次数:
69
比如recv(300) 设置接收300个字节 但是数据有350个字节 第一次接收300个字节之后 还有50个字节放在了输入缓冲区中 下次再执行send时 只是接收了上次存在缓冲区中的50个字节 ...
分类:
编程语言 时间:
2020-05-22 16:49:56
阅读次数:
59