![](https://img-blog.csdnimg.cn/direct/5ed09a4174dc45a1981146f52dcb5763.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
系统编程与网络编程
文章平均质量分 88
基于Linux系统的系统编程与网络编程
长安1108
这个作者很懒,什么都没留下…
展开
-
B/S模式的web通信(高并发服务器)
之后,因为http协议中,对于从浏览器发送而来的文件的位置,是以启动配置的第三个参数为参考根目录的相对路径,服务器要设法拿到服务器对应的路径,而拼接路径又过于繁琐,所以,使用chdir函数,该函数可以让服务端的工作目录跳转到某个目录下(实际上就是与cd的作用一样),所以,chdir(argv[2]),就是将服务器跳转到第三个参数所指明的目录内,这样,从http协议封装出来的数据包拿到的数据,可以直接拿到当前服务器使用,因为服务器的工作目录已经跳转到第三个参数的目录了。如果是cfd,那么进行数据的读取。原创 2024-05-09 17:21:32 · 800 阅读 · 0 评论 -
网络编程--高并发服务器(二)
之后进入while循环,在循环内,无需做任何连接相关的操作,所以我们可以直接进行数据的读写,但是这里read、write函数都无法使用了,因为我们没有connfd,且recv、send函数也不能用,因为他们只能用于TCP,所以,这里read被替换成recvfrom函数,之后进行业务代码,最后将结过通过sendto函数写回。TCP是面向连接的,可靠的数据包传输,也就是他会在复杂的网络环境中,在通信两端建立起连接,可以弥补网络层的不稳定,如果传输过程中丢包,那么会重新传递丢掉的包(主要依赖于ACK应答实现)原创 2024-03-29 09:37:15 · 708 阅读 · 0 评论 -
CMake
首先,我们知道,一个源文件生成可执行文件的步骤为:1、预处理,将源文件中的宏、头文件等展开,将注释删去2、进行编译,将源文件进行编译。3、进行汇编,汇编完成之后,就会根据源文件生成二进制文件,win平台下以“.obj”为后缀,而linux平台下以“.o”为后缀4、链接,将.obj或者.o文件进行链接,最终生成可执行文件,win平台下为.exe,linux平台下为.out文件CMake就是一个项目构建的工具,项目编译构建的工具。原创 2024-04-22 16:10:34 · 794 阅读 · 0 评论 -
GCC、gcc、g++辨析
GCC:GNU Compiler Collection(GUN 编译器集合),它可以编译C、C++、JAV、Fortran、Pascal、Object-C等语言。gcc是GCC中的GUN C Compiler(C 编译器)g++是GCC中的GUN C++ Compiler(C++编译器)由于编译器是可以更换的,所以gcc不仅仅可以编译C文件所以,更准确的说法是:gcc调用了C compiler,而g++调用了C++ compiler。原创 2024-04-22 14:56:04 · 254 阅读 · 0 评论 -
网络编程--高并发服务器
我们从客户端连接上服务端,可以进行正常的运行,但是如果此时第二个客户端也连接上服务端的话,第二个客户端是无法正常运行的,因为目前我们只能处理单进程,一对一的服务提供,无法进行多个客户端同时连接,所以,就有了高并发服务器。现在我们有了服务端和客户端(上图均以终端代替)原创 2024-03-15 11:04:54 · 500 阅读 · 0 评论 -
系统编程--makefile项目管理
makefile就是一个命令脚本文件,接下来我们介绍如何使用他一个规则:目标:依赖(tab缩进)命令如下图所示,是一个最简单的Makefile脚本文件目标:就是最后要生成的文件的文件名依赖:就是生成可执行文件的源文件下一行先起一个tab,之后输入正常情况下我们要在终端输入的命令假如我们按照如上所示命令,进行多个源文件的联合编译,从而生成可执行文件a.out。原创 2024-03-10 11:03:29 · 852 阅读 · 0 评论 -
静态库与动态库
静态库:(如上图左),他的库跟随源文件一起编译到了可执行程序中,所以连接静态库的源文件编译出来的的可执行文件的大小是程序本身的大小+静态库的大小动态库:(如上图右),他的库不跟随源文件一起编译,而是放在内存中,程序调用时直接从内存调用,其他程序都调用同一个动态库,所以连接动态库的源文件编译出来的可执行文件大小是程序本身的大小(不用加“所调用的函数的那一点点大小”,因为调用函数语句就包含在程序中)原创 2024-01-03 12:12:54 · 487 阅读 · 0 评论 -
系统编程--gcc编译与gdb调试工具
以上是gcc编译的四步骤,每个步骤生成对应的文件。原创 2024-01-02 17:06:21 · 577 阅读 · 0 评论 -
系统编程--VIM特辑
注意:许多操作都是在命令模式下完成·,且操作完成之后,不会改变模式。需要注意的是,在末行模式下执行完一次命令,就可以直接回到命令模式。或者不想执行任何末行命令,直接两次ESC也可以回到命令模式。修正:gg 和 G 分别是跳转到整个文件的开头和末尾。具体可见第二章对vim的详细介绍。原创 2024-01-02 11:40:35 · 545 阅读 · 0 评论 -
系统编程--常用命令
cd … 是指到上一级目录~代表家目录,每个用户都有自己的家目录。原创 2023-12-31 11:28:28 · 379 阅读 · 0 评论 -
网络编程--socket编程
问题产生:计算机本地使用的是小端法进行二进制的存储,即高位高地址,地位低地址。但是网络流中是使用的大端法,所以要想实现通信的正常进行,就要进行转换。原创 2023-12-24 20:58:09 · 979 阅读 · 0 评论 -
网络编程--网络理论基础
协议就是传输文件双方都严格遵守的一个传输规则,如上图,第一次传输传文件名,第二次传大小,第三次传内容。原创 2023-12-24 11:42:29 · 539 阅读 · 0 评论