Linux网络编程
文章平均质量分 86
C4ndy
又菜又爱玩,还不服输,真是服了!!!!
展开
-
Linux网络编程-Web服务器实践
经过上述对源码进行的修改,成功编译运行了Web服务器。通过对源码的阅读学习,可以知道,静态网页的实现原理是服务端直接读取文件数据发送的客户端(浏览器),使浏览器直接解析出相应的网页。动态网页的实现原理,根据用户的请求执行相应的脚本程序(可执行文件等),输出相应的数据内嵌到写好的html语法中,返回到客户端,使浏览器解析出相应的网页。其中使用到的主要技术是CGI技术,CGI(Common Gateway Interface)是一种用于在 Web 服务器和应用程序之间传递数据的标准协议。原创 2023-05-07 20:30:48 · 368 阅读 · 0 评论 -
Linux内核防火墙设计与开发——报告版
本次实验主要是针对于防火墙过滤功能的设计,通过在5个检查点NF_INET_PRE_ROUTING、NF_INET_LOCAL_IN、NF_INET_FORWARD、NF_INET_LOCAL_OUT、NF_INET_POST_ROUTING中hook自定义的对数据包的检查函数,即可实现对数据包的检查过滤。注:由于使用的是wsl2子系统的linux,主机pingLinux时,主机的数据包会经过一个网关发送给Linux,Linux的回应数据包也是发送到网关处,故主机的数据包的源地址会被修改为相应的网关地址。原创 2023-05-07 20:23:41 · 665 阅读 · 0 评论 -
基于Netfilter框架设计的软件防火墙过滤系统
本此的防火墙设计是基于Netfilter框架设计的软件防火墙过滤系统基于学习和实践的目的,本次的防火墙设计主要面向于初学者,简单入门防火墙设计。所以本次只对源IP、目的IP地址、源端口、目的端口以及一些简单协议进行过滤。欢迎大家学习交流,如有不足之处,敬请批评指正!其实到这里,这个基于Netfilter框架设计的软件防火墙过滤系统就已经设计完毕了。啪啪啪啪啪啪!!!!原创 2023-05-05 11:21:50 · 1024 阅读 · 0 评论 -
Linux内核编程Hello World
_init和__initdata告诉内核这些函数和数据只在初始化期间使用,一旦初始化完成,它们就不再需要,从而可以释放掉它们占用的内存,从而提高系统的性能和效率。将函数helloworld_init注册为当前内核模块的初始化函数,当这个内核模块被加载到系统中时,内核会自动调用这个函数来完成其初始化工作。__exit告诉内核这些函数只在模块卸载时使用,一旦模块被卸载,它们就不再需要,从而可以释放掉它们占用的内存,从而提高系统的性能和效率。是一个 Linux 内核模块中的宏,用于声明模块的许可证信息。原创 2023-03-23 21:59:35 · 875 阅读 · 0 评论 -
WSL2下kernel header的安装
本来正常的linux发行版只要安装就能装上内核头文件,但wsl2作为一个不一般的linux发行版,并没有直接给出安装包,要手动安装才能正常使用。原创 2023-03-23 19:35:04 · 1525 阅读 · 0 评论 -
Linux网络编程之UDP定时广播
在判断出需要发送广播信息的时候读取相应文件的信息内容发送。在本次设计中采用的方式是将需要定时发送的信息放入一个.txt后缀的文件中,将需要发送的时间按标准格式“%Y-%m-%d %H:%M:%S”放在前面,在通过一个制表符“\t”分割时间和需要发送的信息,紧接着写下需要广播发送的数据信息。服务端首先按行读取该txt文件的信息内容,并将每行的信息分成两项,时间字符串转换成time_t格式存储到结构体的time中,信息内容字符串则直接读取的结构体的message中,最后再将结构体存储到一个集合vector中。原创 2023-04-08 16:46:19 · 809 阅读 · 0 评论 -
Linux网络编程之多线程并发TCP连接
当用户请求上传文件的服务时,由于用户是将一个文件分成多个数据包dataPack分别上传服务器,由于可能无法实现多个线程同时对一个连接描述符进行接收数据包,此处采用的处理是线程接收数据包的过程中,若客户端又发送了另一个数据包,则该线程继续为该客户端提供服务,直至客户端没有连续的数据包发送后,则将该客户端连接描述符从任务队列work_queue中清除。由于每个数据包均记录了数据包的内容所对应的文件,已经对应的内容从文件起始位置的偏移,所以即使由于时延导致数据包不能连续发送,仍不会破坏文件的上传。原创 2023-03-31 21:07:29 · 1021 阅读 · 1 评论 -
Linux网络编程之TCP文件传输
客户端向服务端发送‘download test2.txt’指令,服务端收到‘download test2.txt’指令后,打印指令,并打开resource文件夹中中test2.txt文件,读取文件信息,打包成数据包发送到客户端;读取内容,发现内容为空,故不发送文件内容数据包。客户端向服务端发送‘download test3.txt’指令,服务端收到‘download test3.txt’指令后,打印指令,并打开resource文件夹中中test3.txt文件,读取内容与文件信息,打包成数据包发送到客户端。原创 2023-03-13 21:57:14 · 1858 阅读 · 1 评论 -
Linux编程入门之文件读取和写入
在Linux下编译实现文件的创建、读取、写入、关闭。要求给出源代码、编译命令、运行结果。在Linux环境下编写Hello World程序。要求给出源代码、编译命令、运行结果。原创 2023-03-13 21:53:30 · 278 阅读 · 0 评论