网络编程---以太网头 IP头 ARP包结构体封装及常用自定义网络转换函数(已测试)

本文介绍了在网络编程中使用的以太网头、IP头和ARP包的结构体封装,同时探讨了自定义的网络转换函数,这些内容已在实际工程中得到验证并表现稳定。
摘要由CSDN通过智能技术生成

  以下的结构体在实际工程中经过了测试是可以的,自定义函数也经过了测试,到目前为止没有出现问题。

// ---------------------------------------------
// TCP/IP基础结构体和通用函数
// ---------------------------------------------
#ifndef TCPIPCOMMON_H
#define TCPIPCOMMON_H

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <winsock2.h>

typedef unsigned char       u_char;
typedef unsigned short int  u_short;
typedef unsigned int        u_int;
typedef unsigned long       u_long;


// Ethernet
#define ETHERNET_HEAD_LENGTH    14
#define ARP_TYPE            0x0806          //以太头类型:ARP类型
#define IP_TYPE             0x0800          //以太头类型:IPV4类型
#define IPV6_TYPE           0x86dd          //以太头类型,IPV6类型

// ARP Body 28bytes
// ARP Packet(42bytes) = Ethernet(14bytes) + ARP Body(28bytes)
#define ARP_BODY_LENGTH         28
#define ARP_PACKET_LENGTH       42
#define MPLS_TYPE           0x8847
#define IPX_TYPE            0x8137
#define IS_IS_TYPE          0x8000
#define LACP_TYPE           0x8809
#define _802_1x_TYPE        0x888E
#define ARP_HARDWARE        0x0001          //ARP包中:以太网
#define ARP_REQUEST         0x0001
#define ARP_REPLY           0x0002

// IP Header 20bytes
#define IP_HEAD_LENGTH       20
#define IP_VERSION_4        0x04            //IPV4头,版本4
#define IP_VERSION_6        0x06            //IPV4头,版本6

#define IP_TCP_TYPE         0x06            //IPV4头中的协议类型:TCP
#define IP_UDP_TYPE         0x11            //IPV4头中的协议类型:UDP
#define IP_ICMP_TYPE        0x01            //IPV4头中的协议
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值