自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(276)
  • 资源 (1)
  • 收藏
  • 关注

原创 Linux C++ 编写插件系统

插件系统只是在指定文件夹中搜索 .so,如果找到,则将内容添加到程序中。当然,因为程序实际上并不知道 .so动态库中的内容,所以通常的方法是让 .so 定义一个集合入口点并调用程序本身定义的函数,然后程序可以使用这些动态库提供的接口功能。我们在放把插件放在指定目录下(plugin),然后应用程序启动时候遍历目录找到插件,实现动态加载插件。将所有插件编译为so文件并放入当前工程目录下的plugin/Debug目录中,启动应用程序,插件自动被加载到程序中.

2022-09-22 23:20:00 219

原创 Linux下uniq命令详解及C/C++代码实现

Linux uniq 命令用于从文件中删除所有重复的行。uniq 命令的一个限制是它只能识别文件中相邻或彼此相邻的重复项。它可以单独使用,但通常与其他命令一起使用,例如识别文件中的冗余信息。首先执行“uniq”命令将仅识别相邻的重复项,然后使用“sort”命令将它们按字母顺序排序。uniq命令用于删除有序文件中的重复行并将结果输出到标准输出。从上面的输出中,命令“sort test1.txt | uniq -c”计算一个单词重复的次数。

2022-09-15 23:17:56 35

原创 MongoDB数据库协议解析及C/C++代码实现

MongoDB Wire Protocol是一个简单的基于socket,请求/响应方式的协议,客户端使用常规的TCP/IP套接字(socket)进行通信,服务端默认监听端口是 27017。

2022-09-08 23:01:51 364

原创 Linux whois命令C/C++实现及WHOIS协议抓包分析

WHOIS 客户端向 WHOIS 服务器发出文本请求,然后 WHOIS 服务器回复文本内容。WHOIS 是一种基于 TCP 的面向事务的查询/响应协议,广泛用于向 Internet 用户提供信息服务。当你运行后,其中一个注册机构将处理您的请求并从相应的 whois 记录中向你发送详细信息。whois 是一个有用的 Linux 命令,可让您轻松获取有关域或网站的详细信息。可以在 Linux 中运行此命令来查找有关域的信息。这是获取有关特定域或 IP 地址的信息的一种非常有用的方法。

2022-09-01 22:57:12 249

原创 Linux C/C++下IPv6 socket详解

IPv4 地址的长度为 32 位,而 IPv6 接口由 128 位地址标识。套接字接口使 IP 地址的大小对应用程序非常可见。IPv6 的地址表示法是一组 8 个 4 位十六进制数字,用“:”分隔。 “::” 代表一串 0 位。 特殊地址是 ::1 用于环回。IPv6地址族和协议族IPv4 和 IPv6 共享本地端口空间。当您获得到 IPv6 套接字的 IPv4 连接或数据包时,其源地址将映射到 v6。sin6_family 始终设置为 AF_INET6;用于区分了原始的 sockad

2022-08-25 22:56:04 826 1

原创 Linux生成UUID的算法方式(序列号C/C++代码实现)

有了设备的唯一编号,我们就可以实现更好的软件的授权机制,还可以利用它来限制客户端软件访问后台服务的权限,从而提高系统的安全性。当前日期和时间,UUID的第一个部分与时间有关,如果你在生成一个UUID之后,过几秒又生成一个UUID,则第一个部分不同,其余相同。time_hi_and_version 字段的 12 个最低有效位(位 0 到 11)设置为等于时间戳中的位 48 到 59,以相同的重要性顺序。UUID是指在一台机器上生成的数字,它保证对在同一时空中的所有机器都是唯一的。...

2022-08-16 22:49:19 778

原创 TFTP协议解析及C/C++代码实现

3.Mode,也是可变长字段,用来表示传输文件的数据类型,如果传输的是字符串文件,那么它填写字符串”netascii”,如果传输的是二进制文件,那么它填写字符串”octet”,这些字符串都以0结尾。它可以轻松使用,因为它需要更少的编码,更少的内存使用,并且由于不需要身份验证和安全机制,因此可以轻松使用。一旦建立连接,发送文件的过程就开始了。传输数据块的DATA数据包,它头2字节也是操作码,取值3用于表示数据包用于数据块传输,接下来的2字节用于表示数据块编号,最后是可变长字段Data,用于装载数据块。...

2022-08-11 23:34:13 373

原创 Linux下ipcalc命令详解及C/C++实现(计算主机的IP信息)

如果你有时会发现自己在处理IPv4/IPV6网络时挠头,那么ipcalc可能就是你要找的工具。它首先收集IP地址和NetMask等数据,然后输出所得的广播,网络等信息。可以完成简单的IP地址计算任务。ipcalc命令是一个简单的ip地址计算器,可以完成简单的IP地址计算任务。计算地址掩码需要输入IP地址及网络地址位数,如果未输入网络地址位数则按照A/B/C/D/E类地址进行计算掩码。在本文中,了解了ipcalc工具以及在这些示例中使用它的步骤。我们可以看出计算给定IP的网络掩码,广播地址,网络地址。...

2022-07-31 21:48:14 530

原创 Linux 中的 fold 命令详解及C/C++代码实现

它是一个字符序列——字母、数字、符号和空格——以一个特殊的字节结尾,意思是“开始新的一行”。如果您希望每行在默认值80之外的其他字符限制处换行,则可以在fold命令中使用-w或--width选项。默认情况下,当您使用cat显示文件的内容时,显示的输出会覆盖整个屏幕宽度。当您想将文本段落转换为没有那么多字符并在单词边界处中断的单独行时,fold命令非常有用。如果您希望fold命令根据每行中有多少字节而不是字符来换行,您可以在命令中使用-b或--bytes选项。...

2022-07-24 22:21:04 428

原创 HTTP协议解析及C/C++代码实现

即使在这个版本的HTTP中只发送原始HTTP消息的一部分,每个消息的语义都不会改变,客户端会(实际上)重构原始HTTP/1.1请求。HTTP通过TCP或TLS加密的TCP连接发送的应用层协议,尽管理论上可以使用任何可靠的传输协议。HTTP方法,通常是GET、POST之类的动词或OPTIONS或HEAD之类的名词,用于定义客户端想要执行的操作。HTTP是一种通用且无状态的协议,它可以用于其他目的,也可以使用其请求方法、错误代码和标头的扩展。要获取的资源的路径;...

2022-07-17 23:09:36 1180

原创 Linux 中的 chown 命令详解及C/C++代码实现

操作系统中的不同用户拥有所有权和权限,以确保文件的安全并限制谁可以修改文件的内容。在 Linux 中,chown 命令用于更改系统中另一个用户对文件或目录的所有权。什么是 chown 命令?chown(更改所有者的缩写)命令用于更改基于 Linux 的操作系统中文件和目录组的所有权。 它有助于使文件更安全,并对未经授权的用户施加限制。在本文中,我们将学习在 Linux 中使用 chown 命令,但让我们首先讨论它的语法:chown 命令接受一个选项、一个用户和一个组名以及文件/目录的名称。 chown 会将

2022-07-10 23:14:23 574

原创 Linux 中的 renice 命令详解及C/C++代码实现

Linux 中的 nice 命令有助于执行具有修改的调度优先级的程序/进程。 它启动具有用户定义的调度优先级的进程。如果我们给一个进程更高的优先级,那么内核会为这个进程分配更多的 CPU 时间。 而 renice 命令允许您更改和修改已运行进程的调度优先级。什么是进程简而言之,进程是 Linux 用来承担运行程序角色的命名约定。 进程是规则的集合,任何特定程序通过这些规则使用分配的处理器时间、内存和 I/O 资源。 Linux 系统上运行的每个进程都有自己的进程 ID (PID),通过它可以对其进行监视和管

2022-07-03 22:39:49 794

原创 Linux C/C++实现时间戳转换工具

在大多数 UNIX 系统中,当前时间存储为自特定时刻以来经过的时间以简化,将时间保持为长整数。所有 UNIX 系统普遍接受的时刻是 1970 年 1 月 1 日凌晨 12:00:00。 这称为 UNIX 时间戳,并被所有现代 UNIX/Linux 系统识别。Linux 时间戳date命令例如,如果我们希望找到 2022 年 1 月 1 日的 UNIX 时间戳,我们可以使用 date 命令。date 尝试将字符串解析为格式化的日期和时间(或者,如果未指定时间戳,则假定时间为 00:00 AM),然后打印出给定

2022-06-26 21:49:31 997

原创 telnet 会话的客户端与服务器(C/C++代码实现)

telnet 是一种网络虚拟终端协议。是用于在远程主机上运行程序的标准 TCP/IP 协议。术语telnet也指在特定平台或系统上实现此协议的软件(客户端或服务器组件), telnet 在RFC854 中定义。Telnet 的工作原理telnet 是一个终端仿真程序,它是一个命令行界面,用于在远程计算机上发出命令。 运行 telnet 客户端软件的用户可以在运行 telnet 服务或守护程序的远程主机上交互地运行命令行应用程序。 用户在telnet客户端输入信息; 此信息在 telnet 服务器上进行处理,

2022-06-19 21:51:17 1107

原创 Linux FTP服务器与客户端(FTP命令 C/C++代码实现)

FTP 是 TCP/IP 提供的标准互联网协议,用于将文件从一台主机传输到另一台主机。它主要用于将网页文件从其创建者传输到充当 Internet 上其他计算机的服务器的计算机。它还用于将文件从其他服务器下载到计算机。为什么需要文件传输协议?文件传输协议 (FTP) 是最古老的 Internet 协议之一。 协议背后的思想是通过命令触发下载和上传。 允许将文件从你自己的设备传输到服务器,反之亦然。在 FTP 连接中,通常打开两个通道。 首先,客户端和服务器使用端口 21 建立命令通道。客户端使用该通道向服务器

2022-06-12 22:55:20 1811 1

原创 Linux 中的 head 命令详解及C/C++代码实现

head 命令允许您在标准输出中查看文件的初始行,而无需打开文件。 在本文中,学习了如何使用此实用程序及其选项。Linux head命令head 命令用于打印文件或标准输出的前几行(默认为 10 行)。以下是 head 命令的基本语法:当你使用没有任何选项的 head 命令时,它会默认显示前 10 行,如下所示:如果文件少于十行,它当然会打印所有行。用head命令打印前N行当您需要打印特定的行数时,可以使用 -n 选项后跟行数。例如,要显示前 30 行,您可以使用以下命令:打印除最后 N 行以外的所有内容

2022-06-05 22:34:24 508

原创 Linux 中的 nl 命令详解及C/C++代码实现(文件行数)

在Linux 操作系统中,如果想编辑文本文件时,希望显示在其前面附加行号的行,这时 Linux 中 nl 命令就派上用场,nl 命令对文件中的行进行编号。Linux nl命令nl 命令是一个 Unix/Linux 实用程序,用于为行编号,接受来自文件或来自 STDIN 的输入。 它将每个指定的文件复制到 STDOUT,并在行前附加行号。nl [OPTION]… [FILE]…为了快速了解nl命令,我们创建了一个文本文档,里面内容是以前写的脚本。 使用 nl 命令,我们将向您展示如何在此文本文档中

2022-05-29 22:41:50 517

原创 二层转发及C/C++代码实现

数据链路层是开放系统互连 (OSI) 模型中的第二层

2022-05-22 10:44:00 450 1

原创 Linux nice 命令C/C++实现 (改变执行程序的优先级)

Linux 命令行的强大之处在于甚至可以使用命令行工具轻松调整进程的调度优先级。而nice 命令运行具有修改的调度优先级的命令。显示 Linux 进程top 是一个简单的命令,它提供有关每个进程使用系统资源的信息。 这包括与 CPU 调度相关的知识。 通过在终端中输入 top 我们得到: 相邻的两列表示每个进程的优先级相关值。 PR 列表示进程的实际内核给定优先级,而 NI 列提供每个进程的 Nice Value。Niceness 值的范围从 -20(对过程最有利)到 19(对过程最不利)。如果

2022-05-15 10:39:10 605

原创 Linux at 命令C/C++实现 (在指定的时间执行命令)

在使用 Linux 系统时,我们通常首选 crontab 来安排作业。 命令还有另一个实用程序对于调度一次性任务非常有用。 它从标准输入或脚本/文件中读取命令,稍后可以执行一次。 但是我们不能将 at 命令用于任何重复性任务。 对于重复性任务,请使用 Linux crontab。Linux crontabLinux 系统包有一个名为 crontab 的有用的任务调度程序。 Crontab 很受欢迎,因为它可以安排为以 root 身份运行自动化进程。 因此,以 root 身份运行自动化进程可以更轻松地进行

2022-05-04 21:45:57 1543

原创 Linux ac命令C/C++实现(输出用户连接时间)

在Linux中ac 命令显示有关用户连接到系统的时间量的统计信息。根据当前的/var/log/wtmp文件中的登录进入和退出来报告用户连接的时间。linux ac命令ac 命令根据当前 wtmp 文件中的登录/注销打印出连接时间报告(以小时为单位)。 总数也会被打印出来。ac [options]它的主要参数有两个:1、 -d将显示每天的连接时间。2、 -p将显示每个用户的连接时间。1、获取每日总数:为每天输出输出一个总计时间,而不是在结尾输出一大的总计。2、获得用户的连接时间

2022-04-23 21:08:18 2047

原创 Linux ln 命令是什么?C/C++代码实现

在Linux中,在命令行上工作时,需要在文件之间创建链接,将文件名与文件数据相关联。这可以使用名为 ln 的专用命令来实现。什么是链接?在讨论 ln 命令之前,让我们先讨论一下链接命令,什么是链接,以及它与我们所知道的文件的关系。链接是文件系统中的一个条目,它将文件名连接到磁盘上的实际数据字节。 多个文件名可以“链接”到相同的数据。Linux ln 命令ln 命令用于创建文件或目录的链接。 (“ln”是“link”的缩写。)该命令提供给Linux命令行(也称为shell),可以使用终端窗口打开和操

2022-04-17 22:52:36 1840

原创 Linux下rm命令详解及C/C++代码实现

rm 命令是 Unix/Linux 操作系统中的基本命令之一。rm(即删除)命令用于删除 Linux 和其他类 Unix 操作系统上的文件和目录。此命令通常以静默方式运行,运行 rm 命令时应非常小心,因为一旦删除文件,就无法恢复文件和目录的内容。Linux rm 命令rm 删除命令行中指定的每个文件。 默认情况下,它不会删除目录。当使用 -r 或 -R 选项执行 rm 时,它会递归地删除任何匹配的目录、它们的子目录以及它们包含的所有文件。rm命令的语法:rm [选项] [-r 目录] 文件名

2022-04-10 16:58:20 2258

原创 UDT协议解析及C/C++代码实现

基于 UDP 的协议 (UDT) 是一种高性能数据传输协议。用于广域高速网络上的分布式数据密集型应用程序。 UDT 使用 UDP 传输具有自己的可靠性控制和拥塞控制机制的批量数据。 新协议可以以比 TCP 高得多的速度传输数据。 UDT 也是一个高度可配置的框架,可以适应各种拥塞控制算法。为什么需要使用UDT?UDT 的最初(和主要)目的是为广域网上的分布式数据密集型应用程序提供高性能传输接口,因为效率和公平原因,TCP 很少能很好地工作。它也可以用于 TCP 不适合的其他情况(例如,多媒体流、防火墙穿

2022-04-05 21:48:22 1118

原创 为什么要使用 TCP keepalive?C/C++代码实现

为了理解 TCP keepalive的作用。我们需要清楚,当TCP的Peer A ,Peer B 两端建立了连接之后,如果一端突然拔掉网线或拔掉电源时,怎么检测到拔掉网线或者拔掉电源、链路不通? 原因是在需要长连接的网络通信程序中,经常需要心跳检测机制,来实现检测对方是否在线或者维持网络连接的需要。什么是 TCP 保活?当你建立一个 TCP 连接时,你关联了一组定时器。其中一些计时器处理保活过程。当保活计时器达到零时,向对等方发送一个保活探测数据包,其中没有数据并且 ACK 标志打开。由于 TCP/I

2022-03-27 19:56:42 3121

原创 Linux下zcat命令详解及C/C++代码实现

如果一个压缩文件非常大,而您只想查看文件的内容是什么。 由于在这种情况下,文件的解压将花费大量时间,因此为了节省时间并在不解压文件的情况下查看文件,可以使用zcat命令。zcat 命令通常 zcat 用于查看由 gzip 压缩实用程序创建的文件。zcat 将命令行中列出的文件或由标准输入输入的数据解压,解压后的数据写到标准输出。Zcat 命令的语法:zcat [选项] [名称]选项 -a --ascii Ascii文本模式:按本地习惯转换行结束符。该选

2022-03-20 20:18:50 1683

原创 Linux下dirname命令详解及C/C++代码实现

dirname命令的基本用法非常简单——只需写下命令名,后跟文件的绝对名称即可。 在输出中,将获得完整的目录树,但文件名除外。linux dirname 命令以下是 dirname 命令的通用语法:dirname NAME以下是该工具的手册页对其的描述:输出每个 NAME 并删除其最后一个非斜杠组件并删除尾部斜杠; 如果 NAME 包含没有/,输出’.’ (表示当前目录)。dirname /opt/code/linux_command_code/dirname 处理多个目录?

2022-03-10 23:08:33 1961

原创 Linux arp命令详解及C/C++代码实现

ARP(地址解析协议)是一种网络协议,用于从 IP 地址中找出设备的硬件 (MAC) 地址。当设备想要与本地网络上的其他设备通信时使用它,发送设备使用 ARP 将 IP 地址转换为 MAC 地址。设备发送一个 ARP 请求消息,其中包含接收设备的 IP 地址。 本地网段上的所有设备都会看到该消息,但只有具有该 IP 地址的设备会使用包含其 MAC 地址的 ARP 回复消息进行响应。 发送设备现在有足够的信息将数据包发送到接收设备。ARP过程的解释:假设主机 A 想与主机 B 通信。主机 A 知道主机

2022-03-06 11:44:16 1902

原创 Llinux last 命令显示最近登录的用户列表(C/C++实现)

2022-03-05 12:40:07 1003 1

原创 Linux下umask命令详解及C/C++代码实现

在 Linux 和其他类 Unix 操作系统上,新文件是使用一组默认权限创建的。而umask 命令返回或设置系统文件模式创建掩码的值。umask 命令语法用法:umask [-p] [-S] [mode]用户文件创建掩码设置为模式。如果 mode 以数字开头,则将其解释为八进制数; 否则,它被解释为类似于 chmod接受的符号模式掩码。 如果省略模式,则打印掩码的当前值。-S 选项使掩码以符号形式打印; 默认输出是八进制数。如果提供了 -p 选项,并且省略了 mode,则输出的格式可以重复

2022-02-27 22:37:23 565 1

原创 Linux下chmod命令详解及C/C++代码实现

Linux 中对文件的访问由文件权限、属性和所有权控制。 因此,只有授权的用户和进程才能访问文件和文件夹。本篇使用 chmod 命令更改文件和目录的访问权限。Linux 文件权限在这之前,让我们先了解一下 Linux 权限的基础知识。在 Linux 中,谁可以对文件或目录执行什么操作是通过权限集来控制的。 共有三组权限。 一组用于文件所有者,另一组用于文件组成员,最后一组用于其他所有人。1、文件所有者2、文件所在组3、其他组权限控制可以对文件或目录执行的操作。 它们要么允许或阻止文件被读取、

2022-02-20 22:22:10 1491

原创 BFD协议解析及C/C++代码实现

为了最大限度地减少设备/链路故障对业务的影响,提高网络可用性,网络设备必须能够快速检测到与相邻设备的通信故障。然后可以采取措施及时纠正故障,以确保服务的连续性。而 BFD (双向转发检测)是一种故障检测协议,可以快速确定两个转发引擎之间的通信故障。BFD Control 数据包格式BFD 控制数据包有一个强制部分和一个可选认证部分。 认证部分的格式,如果目前,取决于使用的身份验证类型。BFD Control 数据包强制部分BFD 控制数据包的强制部分具有以下内容格式:Version (Ver

2022-02-15 22:59:01 760

原创 Linux下touch命令详解及C/C++代码实现

touch 命令是创建新的空文件的最简单方法。它还用于更改现有文件和目录的时间戳(即最近访问和修改的日期和时间),是 UNIX/Linux 操作系统中使用的标准命令。touch 命令touch的语法是:touch [option] file_name(s)当不带任何选项使用时,用于创建没有任何内容的文件, 使用 touch 命令创建的文件是空的。 当用户在创建文件时没有要存储的数据时,可以使用此命令。创建文件是我们最常做的事情之一,使用touch命令默认创建一个空文件。POSIX标准定义的

2022-02-12 17:18:34 5003

原创 Oracle(TNS)协议解析及C/C++代码解析

Oracle客户端和服务器使用TNS作为其数据交换协议。 它提供了一种对用户透明的层, 为不同的工业标准协议提供统一, 通用的接口。基本上是TNS以这样的方式指定了端口1521上的会话是“控制”的各种会话。 Oracle侦听器进程在此端口上侦听。连接到此端口后,客户端请求Oracle“服务”。如果侦听器知道此类服务,则将“重定向”消息发送回客户端。在分析期间,通过Wireshark的抓取Oracle TNS协议解析分析。TNS 协议版本协议版本Oracle 版本SQL*Net v

2022-01-23 21:29:06 4099

原创 PGSQL协议解析及C/C++代码实现

PostgreSQL 使用基于消息的协议在前端和后端(客户端和服务器)之间进行通信。 T 端口号 5432 已在 IANA 注册为支持此协议的服务器的惯用 TCP 端口号,但实际上可以使用任何非特权端口号。什么是 PostgreSQL?PostgreSQL,也称为 Postgres,是一种开源关系数据库,因其可靠性、灵活性和对开放技术标准的支持而享有盛誉。 PostgreSQL 支持非关系和关系数据类型。 它被称为当今可用的最兼容、最稳定和最成熟的关系数据库之一,并且可以轻松处理复杂的查询。Postg

2022-01-16 23:09:41 1339

原创 MySQL协议解析及C/C++代码实现

MySQL 常用于许多知名网站,包括 Facebook、Google、Twitter 和 YouTube等等。它于 1995 年首次发布。MySQL 是用 C 和 C++ 编写的。 MySQL 适用于许多系统平台。今天我们主要分析MySQL协议。MySQL交换过程TCP三次握手我们可以通过网络工具(netcat)登录一个MySQL用户,然后输入命令获取数据库信息。然后使用wireshark工具抓包,在wireshark上分析交换流程。MySQL基于的就是TCP的底层协议,需要经历TCP的三次握手。

2022-01-09 22:02:32 1460

原创 DHCP报文分析及C/C++代码实现

动态主机配置协议 (DHCP) 是一种客户端/服务器协议,可自动向 Internet 协议 (IP) 主机提供其 IP 地址和其他相关配置信息,IP地址分配只是DHCP的基本功能。服务器使用UDP端口67,客户端使用UDP端口68。DHCP还能够为客户端配置多种TCP/IP相关设置参数,主要包括子网掩码、默认网关、DNSA服务器、域名等。RFC 2131 和 2132 将 DHCP 定义为基于引导协议 (BOOTP) 的 Internet 工程任务组 (IETF) 标准,该协议与 DHCP 共享许多实施细

2022-01-03 14:33:22 2986

原创 使用 #define 定义些奇妙用法

在 C/C++ 编程语言中,当程序被编译时,被发送到编译器,编译器将程序转换为机器语言,然后完成编译并执行该程序。 预处理器也称为宏预处理器。C /C++中的宏可以定义为一组程序语句,并在必须使用这些代码集时使用该名称。这些宏始终以符号“#”开头,以该符号开头的语句由编译器调用。#define 奇妙用法特殊符号:#,##,#@该宏还可用于传递可以通过在标记前使用“#”特殊符号将其转换为字符串的标记。 让我们看一个例子:#include <stdio.h>#define GET_S

2021-12-26 22:13:09 663

原创 SMTP协议解析及C/C++代码实现

SMTP 是一种应用层协议。 要发送邮件的客户端打开到 SMTP 服务器的 TCP 连接,然后通过该连接发送邮件。 SMTP 服务器是一种永远在线的侦听模式。 一旦它侦听来自任何客户端的 TCP 连接,SMTP 进程就会通过端口 25 启动连接。成功建立 TCP 连接后,客户端进程会立即发送邮件。理解SMTP协议SMTP 协议背后的主要思想是在服务器之间建立通信指南。 服务器识别自己并宣布正在进行的通信类型。 服务器还处理错误,例如不正确的电子邮件地址。 例如,如果收件人地址不正确,则收件人服务器会以错

2021-12-19 22:11:34 1852

原创 什么是traceroute?Linux C/C++下利用ICMP实现traceroute

Linux 中的 traceroute 是一个命令,它是网络工程师用来排除网络故障的最流行的工具, 它于 1987 年发明。当您连接到网站时,您获得的数据必须沿途跨多个设备和网络传输,尤其是路由器。 跟踪路由提供了 Internet 上的数据如何从其源传输到其目的地的信息。如何运行跟踪路由在 Linux 系统上运行 traceroute,请执行以下操作traceroute [hostname]在 Windows 系统上,请执行以下操作:tracert [hostname]术语“主

2021-12-11 22:25:01 2074

Sqlite.zip

本程序用sqlite3实现了增、删、改、查、还有对数据进行排序等功能。使用一个线程处理输入的字符,进行字符对比,做相应的功能处理。

2019-10-06

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除