为什么小弟我自己构造的数据包发不出去呢? 大侠帮小弟我看看啊

为什么我自己构造的数据包发不出去呢? 大侠帮我看看啊!
void   UC_interdiction()
{
int   i;
IP_HEADER   ipHeader;  
UDP_HEADER   udpHeader;
u_int8_t   packet_content[119]   =   {0};


u_int8_t   pdata[64]   =   "\x3A\x10\x03\x12\x00\x68\x10\x24\x00\xBE\x01\x00\x00\x00\x00\x02\x01\x10\x10\xAF\x24\x00\x00\x3C\x50\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x24\x9E\xBE\x01\x00\x00\x00\x00\x03\x41\x41\x41\xDB\x27\x13\x00\x01\xD3\x5E\xA3\x44 ";
u_int8_t   Dst_MAC[6]   =     "\x01\xE1\xFC\x1A\x57\xFA ";
u_int8_t   Src_MAC[6]   =     "\x01\x17\xF3\xB4\x11\x22 ";
u_int8_t   HeadData[14]   =   "\x11\xc9\xfc\x0d\x7c\x19\x12\x01\x00\x01\x00\x40\x00\x22 ";


//填充IP首部
ipHeader.h_lenver   =   (4 < <4   |   sizeof(ipHeader)/sizeof(unsigned   long));  
ipHeader.tos   =   0;  
ipHeader.total_len   =   htons(sizeof(ipHeader)+sizeof(udpHeader)+13+64);
ipHeader.ident   =   1;  
ipHeader.frag_and_flags   =   0;  
ipHeader.ttl   =   128;  
ipHeader.proto   =   IPPROTO_UDP;  
ipHeader.checksum   =   0;                         /
ipHeader.sourceIP   =   inet_addr( "168.16.35.8 ");  
ipHeader.destIP   =   inet_addr( "205.191.99.214 ");  

//填充UDP首部
udpHeader.souceport   =   htons(2835);
udpHeader.destport   =   htons(3111);
udpHeader.length   =   htons(sizeof(udpHeader)+13+64);//数据长度
udpHeader.checksum   =   0;  

//效验和
memset(packet_content,0,   sizeof(packet_content));
memcpy(packet_content,   &udpHeader,   sizeof(udpHeader));
memcpy(packet_content+sizeof(udpHeader),   HeadData,   13);
memcpy(packet_content+sizeof(udpHeader)+13,UCdata,   64);
udpHeader.checksum   =   checksum((USHORT   *)packet_content,   sizeof(udpHeader)+13+64);


memset(packet_content,0,   sizeof(packet_content));
memcpy(packet_content,   &ipHeader,   sizeof(ipHeader));  
memcpy(packet_content+sizeof(ipHeader),   &udpHeader,   sizeof(udpHeader));  
memcpy(packet_content+sizeof(ipHeader)+sizeof(udpHeader),   HeadData,   13);
memcpy(packet_content+sizeof(ipHeader)+sizeof(udpHeader)+13,   pdata,   64);  
ipHeader.checksum   =   checksum((USHORT   *)packet_content,   sizeof(ipHeader)+sizeof(udpHeader)+13+64);  


memset(packet_content,0,   sizeof(packet_content));
memcpy(packet_content,Dst_MAC,6);
memcpy(packet_content+6,Src_MAC,6);
memcpy(packet_content+14,   &ipHeader,   sizeof(ipHeader));
memcpy(packet_content+14+sizeof(ipHeader),&udpHeader,sizeof(udpHeader));
memcpy(packet_content+14+sizeof(ipHeader)+sizeof(udpHeader),   HeadData,   13);
memcpy(packet_content+14+sizeof(ipHeader)+sizeof(udpHeader)+13,   pdata,   64);


if(   packet_content!=   NULL)
{
pcap_sendpacket(adhandle,packet_content,119);    
}
}

//UDP   /   IP   校验和
unsigned   short   checksum(unsigned   short   *buffer,int   size)
{
unsigned   long   cksum   =   0;

while(size   >   1)   //各位求和
{
cksum   +=   *buffer++;