Linux系统的学习
文章平均质量分 79
关于Linux基础的学习之路
林林林ZEYU
坚持
展开
-
900-Nginx概述
Nginx (“engine x”) 是一个高性能的 HTTP 和反向代理服务器,特点是占有内存少,并发能力强,事实上 nginx 的并发能力确实在同类型的网页服务器中表现较好,中国大陆使用 nginx网站用户有:百度、京东、新浪、网易、腾讯、淘宝等Nginx 作为 web 服务器Nginx 可以作为静态页面的 web 服务器,同时还支持 CGI 协议的动态语言,比如 perl、php等。但是不支持 java。Java 程序只能通过与 tomcat 配合完成。Nginx 专为性能优化而开发,性能是其最重转载 2021-12-05 19:54:50 · 224 阅读 · 0 评论 -
899-初步认识Nginx
Nginx初看Nginx(发音同 engine x)是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,并在一个BSD-like 协议下发行。由俄罗斯的程序设计师Igor Sysoev所开发,供俄国大型的入口网站及搜寻引擎Rambler(俄文:Рамблер)使用。其特点是占有内存少,并发能力强,事实上nginx的并发能力确实在同类型的网页服务器中表现较好.中国大陆使用nginx网站用户有:新浪、网易、 腾讯、小米官网等。众所周知,nginx性能高,而nginx的高原创 2021-12-05 19:49:18 · 183 阅读 · 0 评论 -
889-Linux主机网络流量抓包监控
tcpdump 是一个命令行应用程序,可让你捕获和分析通过系统的网络流量。它通常用于帮助解决网络问题以及安全工具。tcpdump 是一个强大且多功能的工具,包括许多选项和过滤器,可用于各种情况。由于它是一个命令行工具,因此非常适合在没有 GUI 的远程服务器或设备中运行,以收集可以稍后分析的数据。它也可以在后台启动或使用 cron 等工具作为预定作业启动。1. 在 Linux 上安装Tcpdump 包含在多个 Linux 发行版中,因此你可能已经安装了它。使用以下命令检查你的系统上是否安装了 tcpd原创 2021-12-01 14:06:34 · 1600 阅读 · 0 评论 -
880-六大进程通信机制总结
1. 什么是进程通信顾名思义,进程通信( InterProcess Communication,IPC)就是指「进程之间的信息交换」。实际上,「进程的同步与互斥本质上也是一种进程通信」(这也就是待会我们会在进程通信机制中看见信号量和 PV 操作的原因了),只不过它传输的仅仅是信号量,通过修改信号量,使得进程之间建立联系,相互协调和协同工作,但是它「缺乏传递数据的能力」。虽然存在某些情况,进程之间交换的信息量很少,比如仅仅交换某个状态信息,这样进程的同步与互斥机制完全可以胜任这项工作。但是大多数情况下,「原创 2021-11-28 13:49:48 · 1286 阅读 · 0 评论 -
875-Linux LVM分区与应用
前言Linux LVM分区与应用四个概念物理拓展物理卷卷组逻辑卷操作系统最后去使用的是逻辑卷,所有操作的目的是创建出逻辑卷,取代了原本的硬盘和分区,进行格式化,挂载操作。使用逻辑卷的操作1、把原本的硬盘,也就是把物理硬盘格式化为物理卷PV,底层实际上是把硬盘空间划分成一个一个PE,PE是逻辑卷空间管理的最基本单位。PE默认是4M大小。比如说, 400M的硬盘创建成物理卷,就是划分成100个PE。2、创建一个VG,(卷组),可以理解为是一个空间池,VG的作用是用来装PE的,我们可原创 2021-11-26 21:01:49 · 510 阅读 · 0 评论 -
874-Linux中的默认权限-umask
Linux中的默认权限-umask第一个0:特殊权限第二个0:文件或者目录拥有者的权限第三个0:所属组的权限2:其他人的权限数字代表的是:拿走的权限0:什么权限都不拿走2:拿走w权限4:拿走r权限1:拿走x权限直观的查看默认权限临时修改默认权限永久修改默认权限修改配置文件后,重启就生效的。确认一下是不是root用户,还是不行话,把source加到rc.local中去...原创 2021-11-26 19:22:16 · 513 阅读 · 0 评论 -
870-Linux下解决高并发socket最大连接数限制
linux作为服务器系统,当socket运行高并发TCP程序时,通常会出现连接建立到一定个数后不能再建立连接的情况。我在做集群集群聊天服务器项目的时候,多次测试,发现每次连接建立到1000左右时,再也不能建立tcp连接,通过这个命令 ulimit -n 可以看到默认值为1024最近通过上网搜索,linux系统默认ulimit为1024个访问 用户最多可开启的程序数目。一般一个端口的最高连接为2的16次方65535。查看全局文件句柄数限制(系统支持的最大值)cat /proc/sys/fs/fil原创 2021-11-25 22:06:05 · 6054 阅读 · 1 评论 -
862-Linux硬链接和软链接
Linux硬链接查看文件系统创建硬链接我们看到,数字显示的是2我们现在修改file1:我们现在在file2添加bbb,然后查看:file1和file2互为硬链接关系,修改其中一个文件,另一个文件的内容也会发生改变。如果删除了其中一个文件,另一个文件还是可以正常使用的。Linux软链接创建软链接我们给file1创建软链接:我们现在看家目录:红色表示报错,没有找到,这个软连接是错误的,要添加路径。我们删除:我们现在这么创建:现在就可以了。我们现在编原创 2021-11-24 23:33:23 · 404 阅读 · 0 评论 -
769-Linux高频考点梳理(3)
select poll epoll 的比较辅助说明:(1) Select 和 poll 每轮循环都需要将描述符和事件传给内核,而 epoll 每个描述符只需要传一次,不需要每轮都传。而且 select 事件集合相对较小。(2) Selet 和 poll 在内核中是以轮询的方式实现的,时间复杂度 O(n) 而 epoll 是采用回调函数的方式监测,时间复杂度为 O(1)(3) Select 和 poll 返回后,为了找到就绪描述符,需要遍历所有元素,时间复杂度为 O(n), 而 epoll 直接拿到原创 2021-11-06 18:19:29 · 264 阅读 · 0 评论 -
768-Linux高频考点梳理(2)
HTTP 和 HTTPS 协议区别?这三个协议都是应用层协议。http:超文本传输协议https : 安全的超文本传输协议, 在 HTTP 协议基础上加入了 SSL 协议保证安全传输。HTTP 和 HTTPS 主要应用于 Web 浏览器和网站服务器之间传递数据,HTTP 协议以明文方式发送内容,不提供任何方式的数据加密,如果攻击者截取了 Web 浏览器和网站服务器之间的传输报文,就可以直接读懂其中的信息,因此 HTTP 协议不适合传输一些敏感信息,比如信用卡号、密码等。而 HTTPS 为了数据传输的原创 2021-11-06 14:21:05 · 255 阅读 · 0 评论 -
767-Linux高频考点梳理(1)
g++与 gcc 的区别,g++能编译.c 文件吗?gcc 能编译.cpp 文件吗?1、gcc 现在是 gnu 提供的一些编译器工具的集合(Gnu Compiler Collection),以前是gnu 组织提供的 c 编译器(Gnu C Compiler)。g++是 c++编译器编译器。2、 gcc 可以编译.c 和.cpp 的源文件对*.c 按 c 语言语法规则处理,*.cpp 自动按 c++语法规则处理,但默认不链接相应的 c++库,需要手动指定链接的库名"-lstdc++"3、 g++可以编译原创 2021-11-06 12:15:51 · 274 阅读 · 0 评论 -
764-Linux查看网络信息
Linux查看网络连接数netstat命令netstat -anpa:表示显示所有选项n:拒绝显示别名,尽可能的把一些别名转换成一个数字p:建立相关连接的程序名也显示出来第1列:协议类型第4列:本地地址第5列:远端地址在网络编程中,我们都知道,去描述一个连接需要一个五原组:原IP,原端口,目的IP,目的端口和协议类型。State:当前连接的状态(对TCP来说,有意义,UDP不涉及State)PID/Program name:表示当前连接锁定的进程的进程id和进程名字我们直接输入 -原创 2021-11-04 19:56:36 · 773 阅读 · 0 评论 -
763-如何查看Linux CPU内存和系统版本
如何查看Linux CPU信息?cat /proc/cpuinfo查看CPU的动态信息:toptop命令可以在顶部展现出当前CPU的整体使用情况。top在动态刷新的时候可以直接输入1就可以看到当前的多核情况dstat:查看CPU的动态运行信息查看当前的内存信息cat /proc/meminfofree:也可以查看当前内存信息我们还可以这么输入命令:查看以kb,mb,gb为单位的内存信息查看系统版本uname -r:显示当前系统的内核版本号uname -a:详细信息的查原创 2021-11-04 19:13:24 · 127 阅读 · 0 评论 -
762-如何查看Linux硬盘空间使用情况
如何查看Linux硬盘空间使用情况?df: 显示当前分区以及使用情况df -hdf -i一般我们在创建文件的时候,先是申请Inode,然后申请空间。du:查看指定目录,指定文件的大小情况1个分区是挂载在1个目录下的,du是用来统计目录大小的,换句话来说,du可以统计分区的大小:du -ah / 打印明细出来总结...原创 2021-11-04 18:54:47 · 113 阅读 · 0 评论 -
700-浅谈零拷贝和NIO
传统的IO模型是怎么样的?我们来看一张图,让我们看看一个文件从磁盘传输到网卡究竟要经历什么样的磨难:「第一步」:将文件通过 「DMA」 技术从磁盘中拷贝到内核缓冲区「第二步」:将文件从内核缓冲区拷贝到用户进程缓冲区域中「第三步」:将文件从用户进程缓冲区中拷贝到 socket 缓冲区中「第四步」:将socket缓冲区中的文件通过 「DMA」 技术拷贝到网卡这种数据存储的区域整体我们把它叫做「非直接缓冲区」。我们发现,居然有四步数据拷贝的过程!!并且整个数据的传输过程都是「需要 CPU 去执行」原创 2021-10-18 00:02:12 · 209 阅读 · 0 评论 -
694-为什么TCP建连接要3次,断连接却要4次呢?
为什么TCP 建连接要3次,断连接却要4次呢?网络上的传输是没有连接的,包括TCP也是一样的。而TCP所谓的“连接”,其实只不过是在通讯的双方维护一个“连接状态”,让它看上去好像有连接一样。所以,TCP的状态变换是非常重要的。很多人会问,为什么建连接要3次握手,断连接需要4次挥手?对于建连接的3次握手,主要是要初始化Sequence Number 的初始值。通信的双方要互相通知对方自己的初始化的Sequence Number(缩写为ISN:Inital Sequence Number)——所以叫S原创 2021-10-17 17:37:42 · 130 阅读 · 0 评论 -
683-没有accept,能建立TCP连接吗?
上面这个动图,是我们平时客户端和服务端建立连接时的代码流程。对应的是下面一段简化过的服务端伪代码。int main(){ /*Step 1: 创建服务器端监听socket描述符listen_fd*/ listen_fd = socket(AF_INET, SOCK_STREAM, 0); /*Step 2: bind绑定服务器端的IP和端口,所有客户端都向这个IP和端口发送和请求数据*/ bind(listen_fd, xxx); /*Ste原创 2021-10-16 14:46:27 · 182 阅读 · 0 评论 -
679-Linux的性能分析和优化
Linux的性能分析和优化影响Linux服务器性能的因素CPUCPU是操作系统稳定运行的根本,CPU的速度与性能在很大程度上决定了系统整体的性能,因此,CPU数量越多、主频越高,服务器性能也就相对越好。内存内存的大小也是影响Linux性能的一个重要的因素,内存太小,系统进程将被阻塞,应用也将变得缓慢,甚至失去响应;内存太大,导致资源浪费。磁盘IO磁盘的I/O性能直接影响应用程序的性能,在一个有频繁读写的应用中,如果磁盘I/O性能得不到满足,就会导致应用停滞。好在现今的磁盘都采用了很多方法来提高原创 2021-10-15 14:46:20 · 369 阅读 · 0 评论 -
664-Linux高效的wakeupfd进程间通信
eventfdeventfd是Linux 2.6提供的一种系统调用,它可以用来实现事件通知。eventfd包含一个由内核维护的64位无符号整型计数器,创建eventfd时会返回一个文件描述符,进程可以通过对这个文件描述符进行read/write来读取/改变计数器的值,从而实现进程间通信。#include <sys/eventfd.h>int eventfd(unsigned int initval, int flags);flags 可以是以下值的 OR 运算结果,用以改变 event原创 2021-10-03 20:27:51 · 289 阅读 · 0 评论 -
663-Linux高效的writev和readv函数
read()和write()系统调用每次在文件和进程的地址空间之间传送一块连续的数据。但是,应用有时也需要将分散在内存多处地方的数据连续写到文件中,或者反之。在这种情况下,如果要从文件中读一片连续的数据至进程的不同区域,使用read()则要么一次将它们读至一个较大的缓冲区中,然后将它们分成若干部分复制到不同的区域,要么调用read()若干次分批将它们读至不同区域。同样,如果想将程序中不同区域的数据块连续地写至文件,也必须进行类似的处理。readv()和writev()它们只需一次系统调用就可以实现在文原创 2021-10-03 20:19:06 · 1085 阅读 · 0 评论 -
662-Linux的内存申请与释放
我们打开linux的资源管理器目前内存有2GB,目前用了200多M,swap分区:2GB(虚拟内存)虚拟内存—磁盘上的划分的空间,当做内存来用程序大,内存装不下,有了虚拟内存,把一部分放到虚拟内存上执行,虽然速度慢,但是起码能运行啊!我们写一个程序,申请1GB空间好像并没有什么变化?因为我们的malloc申请空间,实际上是在进程的虚拟地址空间说:我们需要1GB的空间,虚拟地址空间会划分一部分给应用程序去使用,真正到去使用这块空间的时候,用到了哪块,才会去分配真正的物理内存。我们对代码.原创 2021-09-30 21:15:12 · 318 阅读 · 0 评论 -
660-Linux的netstat命令
netstat命令etstat命令,对应的选项比较多,功能比较强大。netstat 常用来查看,后台服务进程的相关状态。netstat 可以用来打印网络连接、路由表、连接的数据统计。打印所有连接使用 -a,列出所有连接。打印 TCP 或 UDP 连接使用 -t 选项列出 TCP 协议的连接。使用 -u 选项列出 UDP 协议的连接。禁用反向域名解析使用 -n 选项禁用域名解析功能,这样可以加快查找速度。显示对应的程序识别码和程序名称使用 -p 选项列出正在监听的套接字。打印原创 2021-09-29 18:41:27 · 351 阅读 · 0 评论 -
659-linux下调试core dump
linux下调试core dump什么是core dump对于程序,由于各种异常或者 bug,导致在运行过程中,并且在满足一定条件下,产生一个叫做 core 的文件。通常情况下,core 文件会包含了,程序运行时的内存,寄存器状态,堆栈指针,内存管理信息还有各种函数调用堆栈信息等。许多程序出错的时候,会产生一个 core 文件。通过工具分析这个文件,我们可以定位到,程序异常退出的时候对应的堆栈调用等信息。打开 core dump 开关:ulimit -c unlimited看一段有问题的代码:原创 2021-09-29 18:35:02 · 200 阅读 · 0 评论 -
242-Linux下sed的简单使用
Linux下sed的简单使用示例1:vi file.txt现在我想在第二行中插入一个hello修改一下代码,a是附加的作用示例2:vi file.txt删掉第3-5行如果只想要第2,3行调试:可以看到每一行执行的过程...原创 2021-03-24 11:20:52 · 95 阅读 · 0 评论 -
241-Linux下awk的简单使用
Linux下 awk的简单使用操作示例1:vi file.txt下面我们要把file.txt的浮点数的整数部分都存到另外一个文件中这里的分隔符是 点把整数部分视作一个列,点是一个分隔符,小数部分是一个列,一个列就是一个域下面这个命令是直接把要求的数据打印在屏幕上。awk书写格式如下awk脚本如下:列之间要有分隔符!如果要把小数部分打印出来示例2: (对其他文件操作)用户名是$1 ,pid是$3$7是bash看下面这个操作。增加条件。示例3:vi fi原创 2021-03-24 11:07:40 · 244 阅读 · 2 评论 -
240-shell脚本编程(2)
case语句从上往下,哪个条件匹配就执行。示例:类似于C语言的switch用法修改一下代码,|是或的意思。我们完善代码。用[]去代表一个字符。从一个脚本中去调用另外一个脚本示例:我们打开my.sh这就是脚本对脚本的一个调用。我们打开b.sh一下我们观察到,my.sh的pid和b.sh的pid是不一样的!说明它们的解释器不是同一个(进程不是同一个)。执行my.sh脚本,执行到第4行,./b,sh,执行b.sh这个脚本。如果在my.sh中定义变量我们打开b.原创 2021-03-23 22:59:05 · 187 阅读 · 0 评论 -
239-shell脚本编程(1)
为什么用shell脚本编程?helloword示例脚本程序的后缀一般以.sh结尾,但是不是强制的。脚本程序的第一行以#!开头 然后加上当前脚本的解释器。echo相当于C语言的printf!如何执行?正确写法如下:方法1:方法2:这两种方法本质上是一样的。编译型和解释型解释型:运行需要解释器,效率相对低一些。PHP,Python就是解释型。编译型:需要编译链接生成可执行程序。main.c->main.exe。C/C++/Go语言就是编译型。java有编译型的特点也有解原创 2021-03-22 23:45:33 · 1832 阅读 · 10 评论 -
232-libevent的学习(简介和操作示例)
Libevent 是一个轻量级的开源高性能网络库Libevent 是由C语言编写的libevent的简介上来当然要先夸奖啦,Libevent 有几个显著的亮点:事件驱动(event-driven),高性能;轻量级,专注于网络,不如 ACE 那么臃肿庞大;源代码相当精炼、易读;跨平台,支持 Windows、Linux、*BSD 和 Mac Os;支持多种 I/O 多路复用技术, epoll、poll、dev/poll、select 和 kqueue 等;支持 I/O,定时器和信号等事件;原创 2021-03-18 23:18:37 · 221 阅读 · 3 评论 -
230-Linux的守护进程
Linux的守护进程守护进程(精灵进程):运行周期长,一般在后台运行,不需要和用户进行交互。它有点像Windows上的称为服务的进程。比如说画图板,QQ我们打开就看得见,但是我们打开任务管理器,会发现很多进程没有界面,根本看不到它,服务主机等等,不需要和我们用户直接交互,在后台运行,为我们用户提供服务。在计算机管理的服务也可以看到。没有界面。鼠标可以启动和停止。守护进程和普通进程设置不一样因为守护进程运行时间长,需要进行设置。我们之前的./main,./max等等,为什么不弹出“怎么处理”,因为他们原创 2021-03-17 12:48:53 · 190 阅读 · 0 评论 -
229-epoll的LT和ET模式
epoll 对文件描述符有两种操作模式:LT(Level Trigger,电平触发)模式和 ET(EdgeTrigger,边沿触发)模式。LT 模式是默认的工作模式。当往 epoll 内核事件表中注册一个文件描述符上的 EPOLLET 事件时,epoll 将以高效的 ET 模式 来操作该文件描述符。对于 LT 模式操作的文件描述符,当 epoll_wait 检测到其上有事件发生并将此事件通知应用程序后,应用程序可以不立即处理该事件。这样,当应用程序下一次调用 epoll_wait 时,还会再次向应用程序通原创 2021-03-17 11:01:49 · 570 阅读 · 0 评论 -
222-I/O复用函数的使用(epoll)
epoll(epoll是Linux专用的)无论是select还是poll之前,我们都准备有一个集合,然后传给select或者poll。poll是一个系统调用。select也是系统调用。poll的实现在内核实现。我们每一次传递数组,要从目录拷贝到内核空间。select也是内核实现,每一次在调用,传递集合,也要从目录拷贝到内核空间。poll和select每一次循环调用,都要向内核空间传递大量的数据,(拷贝数据)我们就算把数据传给select或者poll,他们两个在内核中是轮循方式检查数据。检查10原创 2021-03-12 21:12:28 · 217 阅读 · 0 评论 -
221-I/O复用函数的使用(poll)
pollpoll是传入一个数组,数组大小可以超过1024。比select可以支持更多的描述符。poll的事件类型更丰富。poll 的接口介绍poll 系统调用和 select 类似,也是在指定时间内轮询一定数量的文件描述符,以测试其中是否有就绪者。poll 的原型如下:#include <poll.h>int poll(struct pollfd *fds, nfds_t nfds, int timeout);poll 系统调用成功返回就绪文件描述符的总数,超时返回 0,失败原创 2021-03-12 20:14:06 · 227 阅读 · 1 评论 -
218-I/O复用函数的使用(select)
I/O 复用使得程序能同时监听多个文件描述符,这对于提高程序的性能至关重要。通常,网络程序在下列情况下需要使用 I/O 复用技术:◼ TCP 服务器同时要处理监听套接字和连接套接字。◼ 服务器要同时处理 TCP 请求和 UDP 请求。◼ 程序要同时处理多个套接字。◼ 客户端程序要同时处理用户输入和网络连接。◼ 服务器要同时监听多个端口。(同时处理多个描述符)需要指出的是,I/O 复用虽然能同时监听多个文件描述符,但它本身是阻塞的。并且当多个文件描述符同时就绪时,如果不采取额外的措施,程序就只能原创 2021-03-10 23:30:22 · 243 阅读 · 0 评论 -
212-HTTP协议与web服务器
浏览器与服务器通信过程HTTP是超文本传输协议,除了文字以外,还可以进行声音,图片的传输。html是超文本标记语言。可以告诉浏览器应该在什么地方显示什么东西。会把主干框架搭起来。当我们在浏览器输入网址,接下来会发生什么事情?这其中发生了什么事情?首先我们有一个服务器端(自己发的网站),我们有一个客户端(浏览器)。HTTP协议是属于应用层。TCP,UDP在传输层,IP在网络层。我们用户会参与对HTTP的解析和组装。当我们在浏览器输入www.baidu.com时,浏览器与 web 服务器在应原创 2021-03-05 23:12:14 · 1137 阅读 · 0 评论 -
211-socket网络编程(UDP)
TCP 提供的是面向连接的、可靠的、字节流服务。UDP 提供的是无连接、不可靠的、数据报服务。我们先回顾一下TCPTCP在收发数据,要建立链接,通过三次握手建立链接进行通讯,四次挥手断开连接。TCP的可靠性:应答确认,超时重传机制。我们本端给对方发送数据,对方收到后会给我们本端应答。我们send发送数据,对方收到会回复一个ACK确认信息。如果对方没有收到,我们本端会重发,我们之前发送的数据包确实丢了,对方收不到数据,不会给我们本端回复,等到一段时间,对方还是没有回复确认,说明这个数据包丢了,我们本端原创 2021-03-04 23:32:30 · 255 阅读 · 1 评论 -
208-socket网络编程(3)
如何实现一个服务器端和多个客户端相连?(把Linux系统设置成桥接模式,可以完成不同电脑在同一个局域网进行连接,收发信息)这是作为服务器端的电脑执行的ifconfig第一个显示的是本机连接的网络的IP地址(192.168.1.104),第二个显示的是回环地址(127.0.0.1)。然后我的电脑和一个同学的电脑都作为客户端,与作为服务器端的电脑处于同一个WiFi连接中。我的地址是192.168.1.110,我朋友的地址是192.168.1.108。然后作为服务器端的电脑与我的电脑和我同学的电脑进行原创 2021-03-02 22:41:31 · 270 阅读 · 1 评论 -
206-socket网络编程(2)
TCP编程流程TCP是面向链接的,可靠的,流式服务。有服务器端和客户端ser(服务器端)1、int sockfd=socket();//创建监听套接字,就像我们的手机,不过它是通过网络进行数据的收和发,在Linux表现为文件描述符。创建成功后,该函数返回的是一个文件描述符(套接字描述符)。2、bind(sockfd,saddr);//指定ip和端口port,绑定。saddr:ipv4的地址包括IP和端口port了。sockfd:套接字描述符3、listen(,5);//创建监听队列,像银行大厅坐原创 2021-02-24 21:40:50 · 224 阅读 · 0 评论 -
204-socket 网络编程(1)
socket是套接字,通过套接字,进行网络数据的收和发套接字就像网络中的“手机”主机字节序列和网络字节序列主机字节序列分为大端字节序和小端字节序,不同的主机采用的字节序列可能不同。大端字节序是指一个整数的高位字节存储在内存的低地址处,低位字节存储在内存的高地址处。小端字节序则是指整数的高位字节存储在内存的高地址处,而低位字节则存储在内存的低地址处。在两台使用不同字节序的主机之间传递数据时,可能会出现冲突。所以,在将数据发送到网络时规定整形数据使用大端字节序,所以也把大端字节序成为网络字节序列。对方接收原创 2021-02-22 21:12:35 · 229 阅读 · 0 评论 -
203-计算机网络
网络网络是由若干结点和连接这些结点的链路组成,网络中的结点可以是计算机,交换机、路由器等设备。网络设备有:交换机、路由器、集线器传输介质有:双绞线(我们常说的网线)、同轴电缆、光纤(光纤速度最快)路由器:网络和网络的链接,口比较少交换机:局域网内,多台主机要链接,口比较多其实说白了,网络就是一台一台的主机连起来(主机是基本单位)网络的目的是实现资源共享,信息交互什么是互联网?把多个网络连接起来就构成了互联网。目前最大的互联网就是我们常说的因特网。(网路作为基本单位)IP 地址两台主原创 2021-02-22 19:31:16 · 638 阅读 · 0 评论 -
168-Linux的多线程(下)
如何查看线程id?实现三个线程分别打印ABC(有序)代码实现如下:运行结果如下:多线程中进行fork会发生什么情况?注意:不管在哪个线程打印pid,pid的值都是整个进程的id号。运行结果如下1、创建一个线程,有两条路径,一条是主线程,一条是子线程,在主线程加入fork();运行结果如下我们可以得知:父进程的id号为4952,子进程的id号为4954,父进程的id号在主线程和子线程都打印了,子进程的id号只在主线程打印4953就是子线程的id号我们发现fork之后原创 2021-02-03 20:54:59 · 221 阅读 · 0 评论