
Linux
文章平均质量分 93
米兰的小铁匠2333
普普通通大学生,西安邮电大学20级计科
展开
-
多路转接reactor epoll ET 简单的英译汉服务
在这个过程中需要 为每一个文件描述符分配一个 管理链接(服务)的 对象 就像去办理业务 每个人有一个对应的工作人员为自己提供服务一样,这个connection对象要调用Tcpserver提供好的函数 换句话来说 connection 用来分别是具体为哪个客户端提供服务。每个单词后面要跟个空格 就算只发一个也要后面加空格 发很多个单词记得最后一个单词后面加空格哦。reactor 在等待事件的到来,如果有事件那就调用相应的函数 来处理。但是具体提供服务 还是在营业厅里面用营业厅提供好的工具来提供服务。原创 2023-04-05 20:38:18 · 549 阅读 · 1 评论 -
应用层协议 ——— HTTP协议
HTTP(Hyper Text Transfer Protocol)协议又叫做超文本传输协议,是一个简单的请求-响应协议,HTTP通常运行在TCP之上。在编写网络通信代码时,我们可以自己进行协议的定制,但实际有很多优秀的工程师早就已经写出了许多非常成熟的应用层协议,其中最典型的就是HTTP协议。原创 2023-03-21 23:54:02 · 742 阅读 · 0 评论 -
用TCP写一个大小写转换的服务,多线程版本
如果编写的程序只在本地机器上运行,那么是不需要考虑大小端问题的,因为同一台机器上的数据采用的存储方式都是一样的,要么采用的都是大端存储模式,要么采用的都是小端存储模式。但如果涉及网络通信,那就必须考虑大小端的问题,否则对端主机识别出来的数据可能与发送端想要发送的数据是不一致的。为了让套接字的网络通信和本地通信能够使用同一套函数接口,于是就出现了sockeaddr结构体,该结构体与sockaddr_in和sockaddr_un的结构都不相同,但这三个结构体头部的16个比特位都是一样的,这个字段叫做协议家族。原创 2023-03-20 13:29:20 · 580 阅读 · 0 评论 -
关于Linux多线程
在一个程序里的一个执行路线就叫做线程(thread)。更准确的定义是:线程是“一个进程内部的控制序列”。一切进程至少都有一个执行线程。线程在进程内部运行,本质是在进程地址空间内运行。在Linux系统中,在CPU眼中,看到的PCB都要比传统的进程更轻量化。透过进程虚拟地址空间,可以看到进程的大部分资源,将进程资源合理分配给每个执行流,就形成了线程执行流。原创 2023-03-17 22:36:35 · 1028 阅读 · 0 评论 -
Linux网络基础第一篇
TCP/IP是一组协议的代名词,它还包括许多协议,组成了TCP/IP协议簇。TCP/IP通讯协议采用了5层的层级结构,每一层都呼叫它的下一层所提供的网络来完成自己的需求。长度为48位, 及6个字节. 一般用16进制数字加上冒号的形式来表示(例如:08:00:27:03:fb:19)。长度为48位, 及6个字节. 一般用16进制数字加上冒号的形式来表示(例如:08:00:27:03:fb:19)。【问题】对于接收方而言,所有的网络数据都是需要经历网络协议栈的,但是,怎么区分网络数据到底属于哪一个应用程序的。原创 2023-03-12 10:32:42 · 211 阅读 · 0 评论 -
Linux信号详解
你在网上买了很多件商品,再等待不同商品快递的到来。但即便快递没有到来,你也知道快递来临时,你该怎么处理快递。也就是你能“识别快递”。当快递员到了你楼下,你也收到快递到来的通知,但是你正在打游戏,需5min之后才能去取快递。那么在在这5min之内,你并没有下去去取快递,但是你是知道有快递到来了。也就是取快递的行为并不是一定要立即执行,可以理解成“在合适的时候去取"。在收到通知,再到你拿到快递期间,是有一个时间窗口的,在这段时间,你并没有拿到快递,但是你知道有一个快递已经来了。原创 2023-03-10 21:11:36 · 829 阅读 · 0 评论 -
Linux进程间通信
进程间通信简称IPC(Interprocess communication),进程间通信就是在不同进程之间传播或交换信息。管道是Unix中最古老的进程间通信的形式,我们把从一个进程连接到另一个进程的数据流称为一个“管道”。例如,统计我们当前使用云服务器上的USER为root的进程。原创 2023-01-16 17:22:39 · 692 阅读 · 0 评论 -
关于Linux的动静态库
静态库(.a):程序在编译链接的时候把库的代码链接到可执行文件中。程序运行的时候将不再需要静态库动态库(.so):程序在运行的时候才去链接动态库的代码,多个程序共享使用库的代码。一个与动态库链接的可执行文件仅仅包含它用到的函数入口地址的一个表,而不是外部函数所在目标文件的整个机器码在可执行文件开始运行以前,外部函数的机器码由操作系统从磁盘上的该动态库中复制到内存中,这个过程称为动态链接(dynamic linking)原创 2022-12-20 17:43:50 · 791 阅读 · 0 评论 -
进程程序替换
叫做可变参数,说白了就是可以按照用户的意愿传入参数的大小个数,如果还不理解,大家肯定都用过C语言中的printf函数吧,printf有没有规定你只能打印几个参数呢?说到环境变量之前我们先来看一下这个问题,我们刚刚提到过,进程替换可以让我们执行其他语言写的程序,那么我们怎么来执行呢?谈完这个话题我们再来谈谈环境变量,execle这个函数多了一个e,这个e就是环境变量,如果你想给这个函数传入环境变量,我们就可以传入环境变量。当程序替换的时候,我们可以理解成为,代码和数据都发生了写时拷贝,完成了父子的分离。原创 2022-12-20 12:13:22 · 665 阅读 · 0 评论 -
进程地址空间详解
这是关于进程地址空间的简单理解原创 2022-11-19 00:18:33 · 851 阅读 · 1 评论