将博客搬至CSDN 发表于 2019-10-19 文章地址:https://blog.csdn.net/as3522 将个人博客搬至csdn,主要是一些个人的学习笔记吧,大多数内容都是转载的,算是个人学习的一些记录,没多少原创的文章。 ... 阅读全文 »
writev遇到非阻塞IO 发表于 2019-08-03 这几天在处理一些协议上面的东西,还算简单吧,封装一些字段然后发出去。 问题就出现在了发出去这个地方,发的地方使用的是writev,writev可以发送多个分散的,不连续的内存里面的东西。比方说,我封装了http的头部,放到了一个httpHeadBuf里面,然后又组装了body,放到了sendBuf里 ... 阅读全文 »
PF_PACKET 发表于 2019-07-28 PF_PACKET瞅代码的时候,看到一个很奇特的socket,sock=socket(PF_PACKET, SOCK_RAW, htons(0x8888)) 那什么是PF_PACKET?我在网上翻了一下,找到了一片不错的文章,详细 sock_raw(注意一定要在root下使用)原始套接字编程可以接收 ... 阅读全文 »
SO_BINDTODEVICE 发表于 2019-07-28 man socket(7)里对该选项的描述: 123456789101112131415161718SO_BINDTODEVICE Bind this socket to a particular device like “eth0”, as speci‐ fied in ... 阅读全文 »
Socket-filter 发表于 2019-07-28 看代码的时候突然遇到了一个很奇怪的结构体 struct sock_filter 当时就是一脸茫然,这是什么? 通过百度大概了解了一下皮毛,这个是过滤器,可以配置规则来过滤一些报文,只提取自己感兴趣的报文。 比较详细的介绍可以参考Linux内核工程导论——网络:Filter(LSF、BPF、eBPF) ... 阅读全文 »
sendto和recvfrom 发表于 2019-07-28 sendto头文件 #include < sys/types.h > #include < sys/socket.h >定义函数int sendto ( int s , const void msg, int len, unsigned int flags, constst ... 阅读全文 »
memalign-calloc-malloc-realloc-free-alloca 发表于 2019-07-28 memalign 在GNU系统中,malloc或realloc返回的内存块地址都是8的倍数(如果是64位系统,则为16的倍数)。如果你需要更大的粒度,请使用memalign或valloc。这些函数在头文件“stdlib.h”中声明。 在GNU库中,可以使用函数free释放memalign和 ... 阅读全文 »
网络编程设置TTL 发表于 2019-07-28 最近遇到一个问题,领导让我查一下关于多播的TTL配置的问题,我也是看了diam之后才知道的原来TTL可以通过编程来实现,说起来网络编程能力欠佳啊 TTLTTL是 Time To Live的缩写,该字段指定IP包被路由器丢弃之前允许通过的最大网段数量。TTL是IPv4包头的一个8 bit字段. 在IP ... 阅读全文 »
开源协议GPL 发表于 2019-07-28 最近添加了一个功能,需要用到开源库,然后是GPLv2。由于GPL的传染性,所以后面就直接拉了一个进程来添加这个新功能。所以相关的协议还是要去了解的。 GPL 协议即通用性公开许可证(General Public License,简称GPL)。 GPL同其它的自由软件许可证一样,许可社会公众享有:运行 ... 阅读全文 »
linux本地套接字 发表于 2019-07-01 Linux网络编程——Unix本地套接字概述 今天给大家讲解网络编程中的一个内容——Unix 本地套接字。 发现很多人不知道或者不太了解 Unix 本地套接字这个概念,这也难怪,socket API 原本就是为多台主机之间网络通信设计的,并且这种网络 socket 同样支持单台主机上的进程间通信 ... 阅读全文 »
linux-unlink 发表于 2019-07-01 Linux下unlink函数的使用一、头文件 #include<unistd.h> 二、函数原型int unlink(const char *pathname); 三、函数介绍unlink()函数功能即为删除文件。执行unlink()函数会删除所给参数指定的文件。 注意: 执行unlin ... 阅读全文 »