-
再聊聊UDP和TCP
所属栏目:[编程] 日期:2022-10-28 来源:DaWei
TCP 是面向连接的传输协议,建立连接时要经过三次握手,断开连接时要经过四次握手,中间传输数据时也要回复 ACK 包确认,多种机制保证了数据能够正确到达,不会丢失或出错。
UDP 是非连接的传输协议,没[详细] -
解析TCP四次握手断开连接
所属栏目:[编程] 日期:2022-10-28 来源:DaWei
建立连接非常重要,它是数据正确传输的前提;断开连接同样重要,它让计算机释放不再使用的资源。如果连接不能正常断开,不仅会造成数据传输错误,还会导致套接字不能关闭,持续占用资源,如果并发量高,服务器压[详细]
-
详细分析TCP数据的传输步骤
所属栏目:[编程] 日期:2022-10-28 来源:DaWei
此时 Ack 号为 1301 而不是 1201,原因在于 Ack 号的增量为传输的数据字节数。假设每次 Ack 号不加传输的字节数,这样虽然可以确认数据包的传输,但无法明确100字节全部正确传递还是丢失了一部分,比如只传递了8[详细]
-
图解TCP数据报结构以及三次握手 很详细
所属栏目:[编程] 日期:2022-10-28 来源:DaWei
TCP(Transmission Control Protocol,传输控制协议)是一种面向连接的、可靠的、基于字节流的通信协议,数据在传输前要建立连接,传输完毕后还要断开连接。
客户端在收发数据前要使用 connect() 函数和[详细] -
TCP协议的粘包难题 数据的无边界性
所属栏目:[编程] 日期:2022-10-28 来源:DaWei
上节我们讲到了socket缓冲区和数据的传递过程,可以看到数据的接收和发送是无关的,read()/recv() 函数不管数据发送了多少次,都会尽可能多的接收数据。也就是说,read()/recv() 和 write()/send() 的执行次数可[详细]
-
2路插入排序算法说明
所属栏目:[编程] 日期:2022-10-27 来源:DaWei
2-路插入排序算法是在折半插入排序的基础上对其进行改进,减少其在排序过程中移动记录的次数从而提高效率。
具体实现思路为:另外设置一个同存储记录的数组大小相同的数组 d,将无序表中第一个记录添加进[详细] -
折半插入排序算法 C语言代码达成
所属栏目:[编程] 日期:2022-10-27 来源:DaWei
上一节介绍了直接插入排序算法的理论实现和具体的代码实现,如果你善于思考就会发现该算法在查找插入位置时,采用的是顺序查找的方式,而在查找表中数据本身有序的前提下,可以使用折半查找来代替顺序查找,这种[详细]
-
插入排序算法及C语言做成
所属栏目:[编程] 日期:2022-10-27 来源:DaWei
插入排序算法是所有排序方法中最简单的一种算法,其主要的实现思想是将数据按照一定的顺序一个一个的插入到有序的表中,最终得到的序列就是已经排序好的数据。
直接插入排序是插入排序算法中的一种,采用[详细] -
哈希表 散列表 详解 包含哈希表处理冲突的方式
所属栏目:[编程] 日期:2022-10-27 来源:DaWei
前面介绍了静态查找表以及动态查找表中的一些查找方法,其查找的过程都无法避免同查找表中的数据进行比较,查找算法的效率很大程度取决于同表中数据的查找次数。
而本节所介绍的哈希表可以通过关键字直接[详细] -
平衡二叉树 AVL树 与C语言实现
所属栏目:[编程] 日期:2022-10-27 来源:DaWei
上一节介绍如何使用二叉排序树实现动态查找表,本节介绍另外一种实现方式——平衡二叉树。
平衡二叉树,又称为 AVL 树。实际上就是遵循以下两个特点的二叉树:
每棵子树中的左子树和右子[详细] -
Java Iterator 迭代器 遍历Collection集合元素
所属栏目:[编程] 日期:2022-10-25 来源:DaWei
Iterator(迭代器)是一个接口,它的作用就是遍历容器的所有元素,也是 Java 集合框架的成员,但它与 Collection 和 Map 系列的集合不一样,Collection 和 Map 系列集合主要用于盛装其他对象,而 Iterator 则主要[详细]
-
Java的异常跟踪栈
所属栏目:[编程] 日期:2022-10-25 来源:DaWei
异常对象的 printStackTrace() 方法用于打印异常的跟踪栈信息,根据 printStackTrace() 方法的输出结果,开发者可以找到异常的源头,并跟踪到异常一路触发的过程。
看下面用于测试 printStackTrace 的例[详细] -
Java Collection接口详解
所属栏目:[编程] 日期:2022-10-25 来源:DaWei
Collection 接口是 List、Set 和 Queue 接口的父接口,通常情况下不被直接使用。Collection 接口定义了一些通用的方法,通过这些方法可以实现对集合的基本操作。定义的方法既可用于操作 Set 集合,也可用于操作 [详细]
-
Java File类 文件操作类 详解
所属栏目:[编程] 日期:2022-10-25 来源:DaWei
在 Java 中,File 类是 java.io 包中唯一代表磁盘文件本身的对象,也就是说,如果希望在程序中操作文件和目录,则都可以通过 File 类来完成。File 类定义了一些方法来操作文件,如新建、删除、重命名文件和目录等[详细]
-
Java字符编码介绍
所属栏目:[编程] 日期:2022-10-25 来源:DaWei
计算机中,任何的文字都是以指定的编码方式存在的,在 Java 程序的开发中最常见的是 ISO8859-1、GBK/GB2312、Unicode、 UTF 编码。
Java 中常见编码说明如下:
ISO8859-1:属于单字节编码,最多只能[详细] -
Java流是什么 输入 输出流又是什么
所属栏目:[编程] 日期:2022-10-24 来源:DaWei
在 Java 中所有数据都是使用流读写的。流是一组有序的数据序列,将数据从一个地方带到另一个地方。根据数据流向的不同,可以分为输入(Input)流和输出(Output)流两种。
在学习输入和输出流之前,我们[详细] -
Java在远程方法调用中运用反射机制
所属栏目:[编程] 日期:2022-10-24 来源:DaWei
上一节详细介绍了如何使用 java.lang.reflect 包提供的 Constructor 类获取构造方法的信息、使用 Method 类获取成员方法的信息以及使用 Field 类获取成员变量的信息。
本案例将介绍反射机制在网络编程中[详细] -
Java通过反射访问成员变量
所属栏目:[编程] 日期:2022-10-24 来源:DaWei
通过下列任意一个方法访问成员变量时将返回 Field 类型的对象或数组。
getFields()
getField(String name)
getDeclaredFields()
getDeclaredField(String name)
上述方法返回的 Fie[详细] -
C++ STL是什么 有啥用
所属栏目:[编程] 日期:2022-10-24 来源:DaWei
在已有 C++ 尤其是 C++ 模板的基础上,从本节开始,我们开始系统地学习 STL 标准模板库,首先来了解什么是 STL,以及学习 STL 有什么用?
STL,英文全称 standard template library,中文可译为标准模板[详细] -
C++ STL的发展历程是啥样的
所属栏目:[编程] 日期:2022-10-24 来源:DaWei
Alexander Stepanov(后被誉为 STL 标准模板库之父,后简称 Stepanov),1950 年出生与前苏联的莫斯科,他曾在莫斯科大学研究数学,此后一直致力于计算机语言和泛型库研究。
在 20 世纪 70 年代,Stepan[详细] -
首个多线程程序
所属栏目:[编程] 日期:2022-10-22 来源:DaWei
通过阅读《什么是线程》一节,我们了解了什么是线程以及什么是多线程。本节,我们教大家编写第一个多线程程序。
大多数操作系统都支持同时执行多个程序,包括常见的 Windows、Linux、Mac OS X 操作系统等[详细] -
链接库是啥 动态链接库和静态链接库
所属栏目:[编程] 日期:2022-10-22 来源:DaWei
静态链接库和动态链接库是最常用的两种共享代码的方法,从本节开始,您将系统地了解它们,并彻底搞清楚以下问题:
什么是库,什么是链接库,以及静态链接库和动态链接库的区别;
如何手动创建一个静态[详细] -
C++ 11是什么 C++ 11标准的原由
所属栏目:[编程] 日期:2022-10-22 来源:DaWei
C++ 这门编程语言的历史可以追溯至 1979 年,当时的 Bjarne Stroustrup(C++ 之父,后续简称 Stroustrup)还在使用 Simula 语言进行开发工作。
Simula 语言被认为是第一个面向对象的编程语言。Stroustru[详细] -
C++ auto类型推导完全策略
所属栏目:[编程] 日期:2022-10-22 来源:DaWei
在 C++11 之前的版本(C++98 和 C++ 03)中,定义变量或者声明变量之前都必须指明它的类型,比如 int、char 等;但是在一些比较灵活的语言中,比如 C#、JavaScript、PHP、Python 等,程序员在定义变量时可以不指[详细]
-
C++ decltype类型推导完全战略
所属栏目:[编程] 日期:2022-10-22 来源:DaWei
decltype 是 C++11 新增的一个关键字,它和 auto 的功能一样,都用来在编译时期进行自动类型推导。不了解 auto 用法的读者请转到《C++ auto》。
decltype 是“declare type”的缩写,译为“[详细]

浙公网安备 33038102330483号