
网络编程
文章平均质量分 86
sakura0908
未来的一个小小码农
展开
-
C语言读取DHCP数据包(pcap文件)内容
/pacp文件头结构体//识别文件和字节顺序:小端/大端模式//主版本号//次版本号//当地的标准时间//时间戳精度//最大的存储长度//链路类型//时间戳//时间戳高位,精确到seconds//时间戳地位,精确到microseconds//pcap数据包头结构体//捕获时间//数据帧/区的长度//离线数据长度//数据链路层数据//源MAC地址//目的MAC地址//帧类型}DL_Header;//IP数据报头//版本+报头长度u_int8 TOS;原创 2023-05-18 10:52:20 · 2157 阅读 · 4 评论 -
DHCP数据包分析
DHCP(Dynamic Host Configuration Protocol,动态主机配置协议),前身是BOOTP协议,是一个局域网的网络协议,使用UDP协议工作,统一使用两个IANA分配的端口:67(服务器端),68(客户端)。DHCP通常被用于局域网环境,主要作用是集中的管理、分配IP地址,使client动态的获得IP地址、Gateway地址、DNS服务器地址等信息,并能够提升地址的使用率。简单来说,DHCP就是一个不需要账号密码登录的、自动给内网机器分配IP地址等信息的协议。原创 2023-05-18 10:26:39 · 1541 阅读 · 0 评论 -
pcap文件格式
在通过使用wireshark工具抓取主机不同网段的数据包时,把抓到的数据包保存起来会发现生成的文件是.pcap文件,此篇博客主要介绍pcap文件的格式,并利用C语言的结构体知识来初窥探数据包数据。原创 2023-05-18 00:19:57 · 1731 阅读 · 0 评论 -
多进程服务器,多线程服务器
/每次一个新的客户端连接上来,开启一条线程,接收 客户端的数据 25 pthread_create(,,routine,&newClientFd);//捕捉 SIGCHLD信号 执行 信号响应函数,在该函数中 回收子进程。//创建一个子进程,子进程负责接收每一个连接上来的客户端数据。//子进程退出的时候 ,会自动发出来一个SIGCHLD信号。while(1){ //接收 客户端的数据。else if(id >0) //父进程。if(id == 0) //子进程{//接收 客户端的数据。原创 2023-03-19 16:02:32 · 358 阅读 · 0 评论 -
c语言实现udp广播和组播
2、填充服务端的结构体,绑定广播地址和端口号(struct sockaddr_in serveraddr,serveraddr.sin_addr.s_addr = htonl(INADDR_ANY)))(需要设置端口复用) 3、创建结构体存放客户端IP和端口,接收数据。C类IP地址就由3字节的网络地址和1字节主机地址组成,网络地址的最高位必须 是“110” 13 C类地址范围 192.0.0.1 - 223.255.255.254 //192.168.14.2。发送给该地址的数据包被所有主机接收。原创 2023-03-18 23:00:07 · 7042 阅读 · 3 评论 -
关于c语言的udp通讯详细讲解
UDP全称 User Datagram Protocol,即:用户数据报协议。是面向无连接的协议。通常,UDP 通信还会被冠以不可靠的头衔。这里的不可靠指的是:无法可靠地得知对方是否收到数据。原创 2023-03-17 13:42:55 · 8336 阅读 · 5 评论 -
关于c语言的tcp通讯详细讲解
简单来讲,TCP 类似于打电话,说话前需要花一定的时间接通电话,等到对方接听了之后双方才能开始通信,通信的过程中每个数据的传送,接收方都会给发送方回执确认,断开的时候也会互相通知以便于释放各自相关的资源。TCP的通信流程跟打电话是几乎一样的,因此可以将通信的过程细分为主动发起连接者(客户端)和被动接受连接者(服务端)两方来分别讨论。2、填充服务器的结构体,绑定主机的IP地址和端口号(bind)//2、绑定主机的IP地址和端口号(bind)(可以省略)4、聊天 -- 发送数据(send/write)原创 2023-03-17 13:37:15 · 6842 阅读 · 0 评论