我正在尝试制作一个简单的 DHCP 客户端。它应该向 DHCP 服务器发送一条消息(已经有这个)接收一条消息并解析它。我创建了一个结构
struct dhcp_msg{
_int8 op; //opcode
_int8 htype; //hardware type
_int8 haddr; //hardware adress
_int8 hops; //hop count
_int32 tid; //transaction id
_int16 sec; //seconds
_int16 unused; //unused
_int32 cipaddr; //client ip
_int32 yipaddr; //your ip
_int32 sipaddr; //server ip
_int32 gipaddr; //gateway ip
char chaddr[16]; //client hardware address
char sname[64]; //server name
char bname[128]; //boot file name
_int8 mcookie[4]; //magic cookie
};
如果我用相应的数据填写所有字段,如何使用 sendto() 发送?我是否应该将其解析为 char 并发送一个指针,因为 sendto() 将指针作为第二个参数。
char *buffer;
...?
sendto(socketC, buffer, sizeof(buffer), 0, (SOCKADDR *)&servAddr, sizeof(sockaddr_in));
如何发送此消息?