当前位置: 技术问答>linux和unix
求救!有一个关于linux上的socket编程的问题要问问大家!
来源: 互联网 发布时间:2015-07-30
本文导语: 我写了下面的一段程序,用来通过socket中的PF_PACKET和SOCK_PACKET来进行自己构造的以太网数据包的发送 ,但是发送过程中出错,大家帮我看看代码上是否有问题? int main(void) { unsigned char tp[60],temp;//tp为需要发送的60...
我写了下面的一段程序,用来通过socket中的PF_PACKET和SOCK_PACKET来进行自己构造的以太网数据包的发送
,但是发送过程中出错,大家帮我看看代码上是否有问题?
int main(void)
{
unsigned char tp[60],temp;//tp为需要发送的60字节长的以太网数据包
int i,pf_socket;
//此处定义数据包发送的目标mac地址
tp[0] = 0x00;
tp[1] = 0x23;
tp[2] = 0xbb;
tp[3] = 0xd4;
tp[4] = 0xc5;
tp[5] = 0x76;
//此处定义数据包发送的源地址
tp[6] = 0x00;
tp[7] = 0x24;
tp[8] = 0x45;
tp[9] = 0xb8;
tp[10] = 0x76;
tp[11] = 0x89;
//此处定义以太网包的协议类型,我定义的为0x888e
tp[12] = 0x88;
tp[13] = 0x8e;
//此处定义包的payload,随便定义一些数据填充进去
for(i=14;i
,但是发送过程中出错,大家帮我看看代码上是否有问题?
int main(void)
{
unsigned char tp[60],temp;//tp为需要发送的60字节长的以太网数据包
int i,pf_socket;
//此处定义数据包发送的目标mac地址
tp[0] = 0x00;
tp[1] = 0x23;
tp[2] = 0xbb;
tp[3] = 0xd4;
tp[4] = 0xc5;
tp[5] = 0x76;
//此处定义数据包发送的源地址
tp[6] = 0x00;
tp[7] = 0x24;
tp[8] = 0x45;
tp[9] = 0xb8;
tp[10] = 0x76;
tp[11] = 0x89;
//此处定义以太网包的协议类型,我定义的为0x888e
tp[12] = 0x88;
tp[13] = 0x8e;
//此处定义包的payload,随便定义一些数据填充进去
for(i=14;i