在Linux上使用C在RAW套接字上发送多播 [英] Sending Multicast with RAW Socket in C on Linux

查看:111
本文介绍了在Linux上使用C在RAW套接字上发送多播的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我编写了一个在Ubuntu LTE上运行的程序,该程序应使用原始套接字将多播消息发送到239.255.25.25端口5004.要接收多播,我正在使用UDP套接字.通过套接字发送的数据是通过rtp流中的wirehark捕获的.现在的问题是,我无法使用UDP套接字接收消息. 为了检查接收器是否正确,我构建了一个发送器,该发送器使用了正常的UDP套接字. 现在,当我通过RAW和UDP套接字发送相同的消息时,我只能接收从udp套接字发送的消息.

我正在使用Wirehark来分析软件包,原始套接字的多播软件包和udp套接字的多播软件包似乎是相同的,但是为什么无法接收从原始套接字发送的软件包呢? /p>

来自UDP和RAW套接字发送器的代码:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include<stdio.h>
#include<stdlib.h>
#include<sys/socket.h>
#include<features.h>
#include<net/if.h>
#include<linux/if_packet.h>
#include<linux/if_ether.h>
#include<errno.h>
#include<sys/ioctl.h>
#include<net/ethernet.h>
#include<net/if_arp.h>
#include<arpa/inet.h>
#include<netinet/in.h>

#define DEVICE "eth0"


int rawsock;
struct sockaddr_ll sll;
struct ifreq ifr;


unsigned char dataArray[]={0x01, 0x00, 0x5e, 0x7f, 0x19, 0x19, 0x00, 0x0a, 0x5e, 0x56, 0xed, 0x87, 0x08, 0x00, 0x45, 0x00, 0x05, 0x4c, 0x00, 0x00, 0x40, 0x00, 0x01, 0x11, 0xa9, 0xdc, 0xc0, 0xa8, 0x01, 0x04, 0xef, 0xff, 0x19, 0x19, 0x80, 0xda, 0x13, 0x8c, 0x05, 0x38, 0xd0, 0x0e, 0x80, 0xa1, 0xb0, 0x14, 0x9a, 0x7d, 0x01, 0x56, 0xb2, 0x50, 0x00, 0x98, 0x47, 0x40, 0x45, 0x1f, 0x00, 0x00, 0x01, 0xe0, 0x06, 0x2b, 0x80, 0xc0, 0x0a, 0x35, 0x69, 0xf3, 0x0e, 0xbd, 0x15, 0x69, 0xf3, 0x2c, 0x13, 0x00, 0x00, 0x00, 0x01, 0x06, 0x05, 0x11, 0x03, 0x87, 0xf4, 0x4e, 0xcd, 0x0a, 0x4b, 0xdc, 0xa1, 0x94, 0x3a, 0xc3, 0xd4, 0x9b, 0x17, 0x1f, 0x00, 0x80, 0x00, 0x00, 0x00, 0x01, 0x01, 0xa8, 0xc3, 0x60, 0x3a, 0x81, 0xb5, 0x5f, 0xab, 0xf5, 0x7e, 0xaf, 0xd5, 0xfa, 0xbf, 0x57, 0xea, 0xfd, 0x5f, 0xab, 0xf5, 0x7e, 0xaf, 0xd5, 0xfa, 0xbf, 0x57, 0xea, 0xfd, 0x5f, 0xab, 0xf5, 0x7e, 0xaf, 0xd5, 0xfa, 0xbf, 0x57, 0xea, 0xfd, 0x5f, 0xab, 0xf5, 0x7e, 0xaf, 0xd5, 0xfa, 0xbf, 0x57, 0xea, 0xfd, 0x5f, 0xab, 0xf5, 0x7e, 0xaf, 0xd5, 0xfa, 0xbf, 0x57, 0xea, 0xfd, 0x5f, 0xab, 0xf5, 0x7e, 0xaf, 0xd5, 0xfa, 0xbf, 0x57, 0xea, 0xfd, 0x5f, 0xab, 0xf5, 0x7e, 0xaf, 0xd5, 0xe0, 0xda, 0xa9, 0x96, 0xa9, 0x96, 0xa9, 0x96, 0xa9, 0x96, 0xa9, 0x96, 0xa9, 0x96, 0xa9, 0x96, 0xa9, 0x96, 0xa9, 0x96, 0xa9, 0x96, 0xa9, 0x96, 0xa9, 0x96, 0xa9, 0x96, 0xa9, 0x96, 0xa9, 0x96, 0xa9, 0x96, 0xa9, 0x96, 0xa9, 0x96, 0xa9, 0x96, 0xa9, 0x96, 0xa9, 0x96, 0xa9, 0x96, 0xa9, 0x96, 0xa9, 0x96, 0xa9, 0x96, 0xa9, 0x96, 0xa9, 0x96, 0xa9, 0x47, 0x00, 0x44, 0x17, 0xb2, 0x04, 0x6e, 0xb5, 0x36, 0x0d, 0x33, 0x4b, 0x52, 0x6b, 0xcf, 0x87, 0x9b, 0xb2, 0xd9, 0xba, 0xda, 0x94, 0x64, 0xe5, 0x46, 0x58, 0x4c, 0x15, 0x3b, 0x17, 0x31, 0xc4, 0xea, 0x5c, 0x10, 0x89, 0xbe, 0x24, 0x10, 0x84, 0x0a, 0xfc, 0x75, 0x02, 0x54, 0xab, 0xa1, 0x29, 0x00, 0xa8, 0xa8, 0x56, 0x6f, 0x02, 0x54, 0xa9, 0xcc, 0xb4, 0x04, 0xea, 0xb2, 0xbe, 0x10, 0x8d, 0x6c, 0xa0, 0xc2, 0x80, 0x5d, 0x25, 0xe9, 0x5f, 0x0b, 0x09, 0x2c, 0x6b, 0xe7, 0xbc, 0x2f, 0x75, 0x89, 0xea, 0x98, 0xb6, 0xea, 0x0e, 0x2a, 0x1c, 0x12, 0xa9, 0x1d, 0x28, 0x81, 0x3e, 0x5e, 0x2b, 0x33, 0xee, 0xdb, 0x3d, 0x36, 0xd1, 0x57, 0xee, 0x85, 0x35, 0x28, 0x68, 0xfd, 0xd4, 0x71, 0xd8, 0xd7, 0xd5, 0x74, 0x6f, 0xbf, 0xbd, 0xfc, 0xe0, 0x5e, 0x52, 0x04, 0xe3, 0xc5, 0xbb, 0x08, 0x8f, 0xb3, 0x0d, 0xbc, 0x6a, 0x9c, 0x06, 0xe1, 0xb1, 0x67, 0xec, 0xba, 0xfc, 0xaf, 0x75, 0xc8, 0x84, 0x02, 0xa0, 0x6b, 0x08, 0x6d, 0x48, 0xb6, 0x8d, 0xef, 0x14, 0x4d, 0x6e, 0xd0, 0xea, 0x21, 0x94, 0xa8, 0x90, 0xe8, 0x00, 0x9b, 0xb4, 0x71, 0xa1, 0xce, 0x09, 0x04, 0x59, 0x18, 0x8c, 0x5a, 0x88, 0x5a, 0x2f, 0xa0, 0x2d, 0x91, 0xe2, 0x5a, 0xd8, 0x55, 0xe2, 0xa7, 0x54, 0x47, 0x00, 0x45, 0x10, 0x96, 0xa9, 0x96, 0xa9, 0x96, 0xa9, 0x96, 0xa9, 0x96, 0xa9, 0x96, 0xa9, 0x96, 0xa9, 0x96, 0xa9, 0x96, 0xa9, 0x96, 0xa9, 0x96, 0xa9, 0x96, 0xa9, 0x96, 0xa9, 0x96, 0xa9, 0x96, 0xa9, 0x96, 0xa9, 0x96, 0xa9, 0x96, 0xa9, 0x96, 0xa9, 0x96, 0xa9, 0x96, 0xa9, 0x96, 0xa9, 0x96, 0xa9, 0x96, 0xa9, 0x96, 0xa9, 0x96, 0xa9, 0xd6, 0xa9, 0xd6, 0xa9, 0xd6, 0xa9, 0xd6, 0xa9, 0xd6, 0xa9, 0xd6, 0xa9, 0xd6, 0xa9, 0xd6, 0xa9, 0xd6, 0xa9, 0xd6, 0xa9, 0xd6, 0xa9, 0xd6, 0xa9, 0xd6, 0xa9, 0xd6, 0xa9, 0xd6, 0xa9, 0xd6, 0xa9, 0xd6, 0xa9, 0xd6, 0xa9, 0xd6, 0xa9, 0xd6, 0xa9, 0xd6, 0xa9, 0xd6, 0xa9, 0xd6, 0xa9, 0xd6, 0xa9, 0xd6, 0xa9, 0xd6, 0xa9, 0xd6, 0xa9, 0xd6, 0xa9, 0xd6, 0xa9, 0xd6, 0xa9, 0xd4, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0xe8, 0xa3, 0x0d, 0x80, 0xea, 0xd5, 0x3a, 0xd5, 0x3a, 0xd5, 0x3a, 0xd5, 0x3a, 0xd5, 0x3a, 0xd5, 0x3a, 0xd5, 0x3a, 0xd5, 0x3a, 0xd5, 0x3a, 0xd5, 0x3a, 0xd5, 0x3a, 0xd5, 0x3a, 0xd5, 0x3a, 0xd5, 0x3a, 0xd5, 0x3a, 0xd5, 0x3a, 0xd5, 0x3a, 0xd5, 0x3a, 0xd5, 0x3a, 0xd5, 0x3a, 0xd5, 0x3a, 0xd5, 0x3a, 0x06, 0xd5, 0x47, 0x7a, 0xa3, 0xbd, 0x51, 0xde, 0xa8, 0xef, 0x54, 0x77, 0xaa, 0x3b, 0xd5, 0x1d, 0x47, 0x00, 0x45, 0x11, 0xea, 0x8e, 0xf5, 0x47, 0x7a, 0xa3, 0xbd, 0x51, 0xde, 0xa8, 0xef, 0x54, 0x77, 0xaa, 0x3b, 0xd5, 0x1d, 0xea, 0x8e, 0xf5, 0x47, 0x7a, 0xa3, 0xbd, 0x51, 0xde, 0xa8, 0xef, 0x54, 0x77, 0xaa, 0x3b, 0xd5, 0x1d, 0xea, 0x8e, 0xf5, 0x47, 0x7a, 0xa3, 0xbd, 0x51, 0xde, 0xa8, 0xef, 0x54, 0x77, 0xaa, 0x3b, 0xd5, 0x1d, 0xea, 0x8e, 0xf5, 0x47, 0x7a, 0xa3, 0xbd, 0x51, 0xde, 0xa8, 0xef, 0x54, 0x77, 0xaa, 0x3b, 0xd5, 0x1d, 0xea, 0x8e, 0xf5, 0x47, 0x7a, 0xa3, 0xbd, 0x51, 0xde, 0xa8, 0xef, 0x54, 0x77, 0xaa, 0x3b, 0xd5, 0x1d, 0xea, 0x8e, 0xf5, 0x47, 0x7a, 0xa3, 0xbd, 0x51, 0xde, 0xa8, 0xef, 0x54, 0x76, 0x0d, 0xaa, 0x99, 0x03, 0x5a, 0xb1, 0xff, 0xff, 0xff, 0xf0, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0xf4, 0x28, 0xc3, 0x60, 0x3a, 0xb5, 0x63, 0x9e, 0xc7, 0xd2, 0xb4, 0xd6, 0x7a, 0xfa, 0x56, 0x9a, 0xcf, 0x5f, 0xda, 0x6b, 0x3d, 0x8f, 0xd2, 0x69, 0xac, 0xf5, 0xf4, 0x12, 0x4d, 0x34, 0xe7, 0xaf, 0xa4, 0x82, 0x69, 0xac, 0xf6, 0x3e, 0x95, 0xa6, 0xb3, 0xd7, 0xd2, 0xb4, 0xd6, 0x7a, 0xfd, 0x26, 0x9a, 0xcf, 0x63, 0xf4, 0x9a, 0x6b};
unsigned char dataArray2[]={0x3d, 0x8f, 0xd2, 0x69, 0xac, 0xf5, 0xfd, 0xa6, 0xb3, 0xd8, 0xfa, 0x56, 0x9a, 0xd5, 0x8e, 0x7b, 0x47, 0x00, 0x44, 0x38, 0x88, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xbc, 0x0e, 0x64, 0xb2, 0x4c, 0x11, 0xe8, 0x39, 0x16, 0x93, 0x5a, 0x74, 0x0d, 0x1c, 0xf6, 0x2b, 0x55, 0x50, 0x14, 0xe5, 0x81, 0xac, 0xe4, 0xf3, 0x02, 0xa4, 0x50, 0x05, 0x9a, 0x4e, 0x37, 0x79, 0x4c, 0x01, 0x13, 0xc5, 0x8c, 0x6f, 0x9b, 0x43, 0x03, 0xe1, 0x82, 0xb2, 0x27, 0x2a, 0xf0, 0x47, 0x40, 0x44, 0x19, 0x00, 0x00, 0x01, 0xc0, 0x01, 0x90, 0x80, 0x80, 0x05, 0x25, 0x69, 0xf3, 0x34, 0xe3, 0xff, 0xf1, 0x4c, 0x80, 0x31, 0x1f, 0xfc, 0x21, 0x0a, 0xd4, 0x13, 0x7c, 0x88, 0x21, 0x08, 0x15, 0xfa, 0xdd, 0xdd, 0x45, 0x25, 0x4a, 0x95, 0x56, 0x02, 0x51, 0x02, 0xb3, 0x39, 0x00, 0x11, 0x06, 0x02, 0xc7, 0xda, 0x4d, 0xad, 0x5f, 0x84, 0xe7, 0x22, 0x5a, 0xb7, 0xca, 0x27, 0x7a, 0xb5, 0x09, 0xd8, 0x83, 0x73, 0x07, 0x6b, 0xb0, 0x34, 0x11, 0x02, 0x18, 0x9d, 0xf5, 0xda, 0x44, 0x73, 0x9b, 0x55, 0xc0, 0x8a, 0x00, 0x77, 0x2b, 0x84, 0xb7, 0x25, 0xc2, 0xa9, 0x43, 0x68, 0x85, 0x67, 0xa4, 0x69, 0xc6, 0x1e, 0x45, 0x75, 0x46, 0xbe, 0x4b, 0x32, 0x2b, 0xef, 0xba, 0x14, 0xd5, 0xc8, 0xb7, 0x97, 0x5a, 0xa4, 0x95, 0x4e, 0xf7, 0x25, 0xf0, 0x96, 0x05, 0xc1, 0x48, 0x32, 0x85, 0x2f, 0x0c, 0x30, 0x57, 0xb3, 0xac, 0x39, 0x19, 0x01, 0x95, 0x52, 0x0d, 0x07, 0x10, 0xf0, 0x46, 0xa8, 0xb4, 0xe8, 0x2b, 0xab, 0xad, 0x73, 0x2d, 0xf9, 0x4c, 0xc8, 0x31, 0x4a, 0xde, 0x7b, 0x01, 0x11, 0x21, 0x7c, 0x29, 0x4f, 0x01, 0x17, 0x17, 0xca, 0x9f, 0x04, 0x6b, 0x37, 0x59, 0x8e, 0x31, 0xbe, 0xba, 0x0d, 0xe9, 0x8b, 0x8d, 0xa5, 0x6a, 0xad, 0x50, 0x60, 0x96, 0x47, 0x00, 0x45, 0x12, 0x1f, 0x4a, 0xd3, 0x59, 0xeb, 0xfb, 0x4d, 0x67, 0xb1, 0xfa, 0x4d, 0x35, 0x9e, 0xbe, 0x82, 0x49, 0xa6, 0x9c, 0xf6, 0x3e, 0x95, 0xa6, 0xb3, 0xd8, 0xfa, 0x56, 0x9a, 0xcf, 0x5f, 0x4a, 0xd3, 0x59, 0xeb, 0xf4, 0x9a, 0x6b, 0x3d, 0x8f, 0xd2, 0x69, 0xac, 0xf6, 0x3f, 0x49, 0xa6, 0xb3, 0xd7, 0xf6, 0x9a, 0x53, 0xd7, 0xd2, 0x41, 0x34, 0xd6, 0x7b, 0x1f, 0x4a, 0xd3, 0x59, 0xeb, 0xfb, 0x4d, 0x67, 0xb1, 0xfa, 0x4d, 0x35, 0x9e, 0xbe, 0x82, 0x49, 0xa6, 0xb3, 0xd8, 0xfd, 0x26, 0x9a, 0xcf, 0x5f, 0xda, 0x6b, 0x3d, 0x8f, 0xa5, 0x69, 0xac, 0xf6, 0x3e, 0x95, 0xa6, 0xb3, 0xd7, 0xd2, 0xb4, 0xd6, 0x7a, 0xfd, 0x26, 0x9a, 0xcf, 0x63, 0xf4, 0x9a, 0x6b, 0x54, 0x74, 0xea, 0x8e, 0x9d, 0x51, 0xd3, 0xaa, 0x3a, 0x75, 0x47, 0x4e, 0xa8, 0xe9, 0xd5, 0x1d, 0x3a, 0xa3, 0xa7, 0x54, 0x74, 0xea, 0x8e, 0x9d, 0x51, 0xd3, 0xaa, 0x3a, 0x75, 0x47, 0x4e, 0xa8, 0xe9, 0xd5, 0x1d, 0x3a, 0xa3, 0xa7, 0x54, 0x74, 0xea, 0x8e, 0x9d, 0x51, 0xd3, 0xaa, 0x3a, 0x75, 0x47, 0x4e, 0xa8, 0xe9, 0xd5, 0x1d, 0x3a, 0xa3, 0xa7, 0x54, 0x74, 0xea, 0x8e, 0x9d, 0x51, 0xd3, 0xaa, 0x3a, 0x75, 0x47, 0x4e, 0xa8, 0xe9, 0xd5, 0x1d, 0x3a, 0xa3, 0xa7, 0x54, 0x74, 0xea};

unsigned char dataComp[1370];



//UDP Socket Variablen


struct in_addr localInterface;
struct sockaddr_in groupSock;
int udpSock;
char groupAddress[]="239.255.25.25";
int groupPort = 5004;






unsigned char payloadOnly[]={0x80, 0xa1, 0xb0, 0x14, 0x9a, 0x7d, 0x01, 0x56, 0xb2, 0x50, 0x00, 0x98, 0x47, 0x40, 0x45, 0x1f, 0x00, 0x00, 0x01, 0xe0, 0x06, 0x2b, 0x80, 0xc0, 0x0a, 0x35, 0x69, 0xf3, 0x0e, 0xbd, 0x15, 0x69, 0xf3, 0x2c, 0x13, 0x00, 0x00, 0x00, 0x01, 0x06, 0x05, 0x11, 0x03, 0x87, 0xf4, 0x4e, 0xcd, 0x0a, 0x4b, 0xdc, 0xa1, 0x94, 0x3a, 0xc3, 0xd4, 0x9b, 0x17, 0x1f, 0x00, 0x80, 0x00, 0x00, 0x00, 0x01, 0x01, 0xa8, 0xc3, 0x60, 0x3a, 0x81, 0xb5, 0x5f, 0xab, 0xf5, 0x7e, 0xaf, 0xd5, 0xfa, 0xbf, 0x57, 0xea, 0xfd, 0x5f, 0xab, 0xf5, 0x7e, 0xaf, 0xd5, 0xfa, 0xbf, 0x57, 0xea, 0xfd, 0x5f, 0xab, 0xf5, 0x7e, 0xaf, 0xd5, 0xfa, 0xbf, 0x57, 0xea, 0xfd, 0x5f, 0xab, 0xf5, 0x7e, 0xaf, 0xd5, 0xfa, 0xbf, 0x57, 0xea, 0xfd, 0x5f, 0xab, 0xf5, 0x7e, 0xaf, 0xd5, 0xfa, 0xbf, 0x57, 0xea, 0xfd, 0x5f, 0xab, 0xf5, 0x7e, 0xaf, 0xd5, 0xfa, 0xbf, 0x57, 0xea, 0xfd, 0x5f, 0xab, 0xf5, 0x7e, 0xaf, 0xd5, 0xe0, 0xda, 0xa9, 0x96, 0xa9, 0x96, 0xa9, 0x96, 0xa9, 0x96, 0xa9, 0x96, 0xa9, 0x96, 0xa9, 0x96, 0xa9, 0x96, 0xa9, 0x96, 0xa9, 0x96, 0xa9, 0x96, 0xa9, 0x96, 0xa9, 0x96, 0xa9, 0x96, 0xa9, 0x96, 0xa9, 0x96, 0xa9, 0x96, 0xa9, 0x96, 0xa9, 0x96, 0xa9, 0x96, 0xa9, 0x96, 0xa9, 0x96, 0xa9, 0x96, 0xa9, 0x96, 0xa9, 0x96, 0xa9, 0x96, 0xa9, 0x96, 0xa9, 0x47, 0x00, 0x44, 0x17, 0xb2, 0x04, 0x6e, 0xb5, 0x36, 0x0d, 0x33, 0x4b, 0x52, 0x6b, 0xcf, 0x87, 0x9b, 0xb2, 0xd9, 0xba, 0xda, 0x94, 0x64, 0xe5, 0x46, 0x58, 0x4c, 0x15, 0x3b, 0x17, 0x31, 0xc4, 0xea, 0x5c, 0x10, 0x89, 0xbe, 0x24, 0x10, 0x84, 0x0a, 0xfc, 0x75, 0x02, 0x54, 0xab, 0xa1, 0x29, 0x00, 0xa8, 0xa8, 0x56, 0x6f, 0x02, 0x54, 0xa9, 0xcc, 0xb4, 0x04, 0xea, 0xb2, 0xbe, 0x10, 0x8d, 0x6c, 0xa0, 0xc2, 0x80, 0x5d, 0x25, 0xe9, 0x5f, 0x0b, 0x09, 0x2c, 0x6b, 0xe7, 0xbc, 0x2f, 0x75, 0x89, 0xea, 0x98, 0xb6, 0xea, 0x0e, 0x2a, 0x1c, 0x12, 0xa9, 0x1d, 0x28, 0x81, 0x3e, 0x5e, 0x2b, 0x33, 0xee, 0xdb, 0x3d, 0x36, 0xd1, 0x57, 0xee, 0x85, 0x35, 0x28, 0x68, 0xfd, 0xd4, 0x71, 0xd8, 0xd7, 0xd5, 0x74, 0x6f, 0xbf, 0xbd, 0xfc, 0xe0, 0x5e, 0x52, 0x04, 0xe3, 0xc5, 0xbb, 0x08, 0x8f, 0xb3, 0x0d, 0xbc, 0x6a, 0x9c, 0x06, 0xe1, 0xb1, 0x67, 0xec, 0xba, 0xfc, 0xaf, 0x75, 0xc8, 0x84, 0x02, 0xa0, 0x6b, 0x08, 0x6d, 0x48, 0xb6, 0x8d, 0xef, 0x14, 0x4d, 0x6e, 0xd0, 0xea, 0x21, 0x94, 0xa8, 0x90, 0xe8, 0x00, 0x9b, 0xb4, 0x71, 0xa1, 0xce, 0x09, 0x04, 0x59, 0x18, 0x8c, 0x5a, 0x88, 0x5a, 0x2f, 0xa0, 0x2d, 0x91, 0xe2, 0x5a, 0xd8, 0x55, 0xe2, 0xa7, 0x54, 0x47, 0x00, 0x45, 0x10, 0x96, 0xa9, 0x96, 0xa9, 0x96, 0xa9, 0x96, 0xa9, 0x96, 0xa9, 0x96, 0xa9, 0x96, 0xa9, 0x96, 0xa9, 0x96, 0xa9, 0x96, 0xa9, 0x96, 0xa9, 0x96, 0xa9, 0x96, 0xa9, 0x96, 0xa9, 0x96, 0xa9, 0x96, 0xa9, 0x96, 0xa9, 0x96, 0xa9, 0x96, 0xa9, 0x96, 0xa9, 0x96, 0xa9, 0x96, 0xa9, 0x96, 0xa9, 0x96, 0xa9, 0x96, 0xa9, 0x96, 0xa9, 0xd6, 0xa9, 0xd6, 0xa9, 0xd6, 0xa9, 0xd6, 0xa9, 0xd6, 0xa9, 0xd6, 0xa9, 0xd6, 0xa9, 0xd6, 0xa9, 0xd6, 0xa9, 0xd6, 0xa9, 0xd6, 0xa9, 0xd6, 0xa9, 0xd6, 0xa9, 0xd6, 0xa9, 0xd6, 0xa9, 0xd6, 0xa9, 0xd6, 0xa9, 0xd6, 0xa9, 0xd6, 0xa9, 0xd6, 0xa9, 0xd6, 0xa9, 0xd6, 0xa9, 0xd6, 0xa9, 0xd6, 0xa9, 0xd6, 0xa9, 0xd6, 0xa9, 0xd6, 0xa9, 0xd6, 0xa9, 0xd6, 0xa9, 0xd6, 0xa9, 0xd4, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0xe8, 0xa3, 0x0d, 0x80, 0xea, 0xd5, 0x3a, 0xd5, 0x3a, 0xd5, 0x3a, 0xd5, 0x3a, 0xd5, 0x3a, 0xd5, 0x3a, 0xd5, 0x3a, 0xd5, 0x3a, 0xd5, 0x3a, 0xd5, 0x3a, 0xd5, 0x3a, 0xd5, 0x3a, 0xd5, 0x3a, 0xd5, 0x3a, 0xd5, 0x3a, 0xd5, 0x3a, 0xd5, 0x3a, 0xd5, 0x3a, 0xd5, 0x3a, 0xd5, 0x3a, 0xd5, 0x3a, 0xd5, 0x3a, 0x06, 0xd5, 0x47, 0x7a, 0xa3, 0xbd, 0x51, 0xde, 0xa8, 0xef, 0x54, 0x77, 0xaa, 0x3b, 0xd5, 0x1d, 0x47, 0x00, 0x45, 0x11, 0xea, 0x8e, 0xf5, 0x47, 0x7a, 0xa3, 0xbd, 0x51, 0xde, 0xa8, 0xef, 0x54, 0x77, 0xaa, 0x3b, 0xd5, 0x1d, 0xea, 0x8e, 0xf5, 0x47, 0x7a, 0xa3, 0xbd, 0x51, 0xde, 0xa8, 0xef, 0x54, 0x77, 0xaa, 0x3b, 0xd5, 0x1d, 0xea, 0x8e, 0xf5, 0x47, 0x7a, 0xa3, 0xbd, 0x51, 0xde, 0xa8, 0xef, 0x54, 0x77, 0xaa, 0x3b, 0xd5, 0x1d, 0xea, 0x8e, 0xf5, 0x47, 0x7a, 0xa3, 0xbd, 0x51, 0xde, 0xa8, 0xef, 0x54, 0x77, 0xaa, 0x3b, 0xd5, 0x1d, 0xea, 0x8e, 0xf5, 0x47, 0x7a, 0xa3, 0xbd, 0x51, 0xde, 0xa8, 0xef, 0x54, 0x77, 0xaa, 0x3b, 0xd5, 0x1d, 0xea, 0x8e, 0xf5, 0x47, 0x7a, 0xa3, 0xbd, 0x51, 0xde, 0xa8, 0xef, 0x54, 0x76, 0x0d, 0xaa, 0x99, 0x03, 0x5a, 0xb1, 0xff, 0xff, 0xff, 0xf0, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0xf4, 0x28, 0xc3, 0x60, 0x3a, 0xb5, 0x63, 0x9e, 0xc7, 0xd2, 0xb4, 0xd6, 0x7a, 0xfa, 0x56, 0x9a, 0xcf, 0x5f, 0xda, 0x6b, 0x3d, 0x8f, 0xd2, 0x69, 0xac, 0xf5, 0xf4, 0x12, 0x4d, 0x34, 0xe7, 0xaf, 0xa4, 0x82, 0x69, 0xac, 0xf6, 0x3e, 0x95, 0xa6, 0xb3, 0xd7, 0xd2, 0xb4, 0xd6, 0x7a, 0xfd, 0x26, 0x9a, 0xcf, 0x63, 0xf4, 0x9a, 0x6b};
unsigned char payloadOnly2[]={0x3d, 0x8f, 0xd2, 0x69, 0xac, 0xf5, 0xfd, 0xa6, 0xb3, 0xd8, 0xfa, 0x56, 0x9a, 0xd5, 0x8e, 0x7b, 0x47, 0x00, 0x44, 0x38, 0x88, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xbc, 0x0e, 0x64, 0xb2, 0x4c, 0x11, 0xe8, 0x39, 0x16, 0x93, 0x5a, 0x74, 0x0d, 0x1c, 0xf6, 0x2b, 0x55, 0x50, 0x14, 0xe5, 0x81, 0xac, 0xe4, 0xf3, 0x02, 0xa4, 0x50, 0x05, 0x9a, 0x4e, 0x37, 0x79, 0x4c, 0x01, 0x13, 0xc5, 0x8c, 0x6f, 0x9b, 0x43, 0x03, 0xe1, 0x82, 0xb2, 0x27, 0x2a, 0xf0, 0x47, 0x40, 0x44, 0x19, 0x00, 0x00, 0x01, 0xc0, 0x01, 0x90, 0x80, 0x80, 0x05, 0x25, 0x69, 0xf3, 0x34, 0xe3, 0xff, 0xf1, 0x4c, 0x80, 0x31, 0x1f, 0xfc, 0x21, 0x0a, 0xd4, 0x13, 0x7c, 0x88, 0x21, 0x08, 0x15, 0xfa, 0xdd, 0xdd, 0x45, 0x25, 0x4a, 0x95, 0x56, 0x02, 0x51, 0x02, 0xb3, 0x39, 0x00, 0x11, 0x06, 0x02, 0xc7, 0xda, 0x4d, 0xad, 0x5f, 0x84, 0xe7, 0x22, 0x5a, 0xb7, 0xca, 0x27, 0x7a, 0xb5, 0x09, 0xd8, 0x83, 0x73, 0x07, 0x6b, 0xb0, 0x34, 0x11, 0x02, 0x18, 0x9d, 0xf5, 0xda, 0x44, 0x73, 0x9b, 0x55, 0xc0, 0x8a, 0x00, 0x77, 0x2b, 0x84, 0xb7, 0x25, 0xc2, 0xa9, 0x43, 0x68, 0x85, 0x67, 0xa4, 0x69, 0xc6, 0x1e, 0x45, 0x75, 0x46, 0xbe, 0x4b, 0x32, 0x2b, 0xef, 0xba, 0x14, 0xd5, 0xc8, 0xb7, 0x97, 0x5a, 0xa4, 0x95, 0x4e, 0xf7, 0x25, 0xf0, 0x96, 0x05, 0xc1, 0x48, 0x32, 0x85, 0x2f, 0x0c, 0x30, 0x57, 0xb3, 0xac, 0x39, 0x19, 0x01, 0x95, 0x52, 0x0d, 0x07, 0x10, 0xf0, 0x46, 0xa8, 0xb4, 0xe8, 0x2b, 0xab, 0xad, 0x73, 0x2d, 0xf9, 0x4c, 0xc8, 0x31, 0x4a, 0xde, 0x7b, 0x01, 0x11, 0x21, 0x7c, 0x29, 0x4f, 0x01, 0x17, 0x17, 0xca, 0x9f, 0x04, 0x6b, 0x37, 0x59, 0x8e, 0x31, 0xbe, 0xba, 0x0d, 0xe9, 0x8b, 0x8d, 0xa5, 0x6a, 0xad, 0x50, 0x60, 0x96, 0x47, 0x00, 0x45, 0x12, 0x1f, 0x4a, 0xd3, 0x59, 0xeb, 0xfb, 0x4d, 0x67, 0xb1, 0xfa, 0x4d, 0x35, 0x9e, 0xbe, 0x82, 0x49, 0xa6, 0x9c, 0xf6, 0x3e, 0x95, 0xa6, 0xb3, 0xd8, 0xfa, 0x56, 0x9a, 0xcf, 0x5f, 0x4a, 0xd3, 0x59, 0xeb, 0xf4, 0x9a, 0x6b, 0x3d, 0x8f, 0xd2, 0x69, 0xac, 0xf6, 0x3f, 0x49, 0xa6, 0xb3, 0xd7, 0xf6, 0x9a, 0x53, 0xd7, 0xd2, 0x41, 0x34, 0xd6, 0x7b, 0x1f, 0x4a, 0xd3, 0x59, 0xeb, 0xfb, 0x4d, 0x67, 0xb1, 0xfa, 0x4d, 0x35, 0x9e, 0xbe, 0x82, 0x49, 0xa6, 0xb3, 0xd8, 0xfd, 0x26, 0x9a, 0xcf, 0x5f, 0xda, 0x6b, 0x3d, 0x8f, 0xa5, 0x69, 0xac, 0xf6, 0x3e, 0x95, 0xa6, 0xb3, 0xd7, 0xd2, 0xb4, 0xd6, 0x7a, 0xfd, 0x26, 0x9a, 0xcf, 0x63, 0xf4, 0x9a, 0x6b, 0x54, 0x74, 0xea, 0x8e, 0x9d, 0x51, 0xd3, 0xaa, 0x3a, 0x75, 0x47, 0x4e, 0xa8, 0xe9, 0xd5, 0x1d, 0x3a, 0xa3, 0xa7, 0x54, 0x74, 0xea, 0x8e, 0x9d, 0x51, 0xd3, 0xaa, 0x3a, 0x75, 0x47, 0x4e, 0xa8, 0xe9, 0xd5, 0x1d, 0x3a, 0xa3, 0xa7, 0x54, 0x74, 0xea, 0x8e, 0x9d, 0x51, 0xd3, 0xaa, 0x3a, 0x75, 0x47, 0x4e, 0xa8, 0xe9, 0xd5, 0x1d, 0x3a, 0xa3, 0xa7, 0x54, 0x74, 0xea, 0x8e, 0x9d, 0x51, 0xd3, 0xaa, 0x3a, 0x75, 0x47, 0x4e, 0xa8, 0xe9, 0xd5, 0x1d, 0x3a, 0xa3, 0xa7, 0x54, 0x74, 0xea};

unsigned char payloadComp[1328];



int main()
{

    do{

    memmove(dataComp, dataArray,sizeof(dataArray));
    memmove(&dataComp[sizeof(dataArray)],dataArray2,(sizeof(dataArray2)));

    printf("Press Enter for Sending Multicast via RAW Socket...\n");
    getchar();

    //RAW Socket


    if ((rawsock = socket(AF_PACKET, SOCK_RAW, htons(ETH_P_ALL)))== -1)
    {
        perror("Error creating raw socket: ");
        exit(-1);
    }

    bzero(&sll, sizeof(sll));
    bzero(&ifr, sizeof(ifr));


    strncpy((char *)ifr.ifr_name, DEVICE, IFNAMSIZ);
    if ((ioctl(rawsock, SIOCGIFINDEX, &ifr)) == -1)
    {
        printf("Error getting Interface index !\n");
        exit(-1);
    }


    sll.sll_family = AF_PACKET;
    sll.sll_ifindex = ifr.ifr_ifindex;


    if(sendto(rawsock, dataComp, 1370, 0, (struct sockaddr *)&sll, sizeof(sll)) < 0)
    {
        perror("Sending datagram message error");
    }


 //UDP Socket
    printf("For Sending Multicast via UDP Socket press Enter \n");
    getchar();

    memmove(payloadComp, payloadOnly, sizeof(payloadOnly));
    memmove(&payloadComp[sizeof(payloadOnly)],payloadOnly2,(sizeof(payloadOnly)));

    udpSock = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP);
    if(udpSock < 0)
    {
      perror("Opening datagram socket error");
      return 0;
    }
    else

    memset((char *) &groupSock, 0, sizeof(groupSock));
    groupSock.sin_family = AF_INET;
    groupSock.sin_addr.s_addr = inet_addr(groupAddress); //Multicast Adress
    groupSock.sin_port = htons(groupPort);                 //Port for Multicast
    localInterface.s_addr = inet_addr("192.168.1.4");
    if(setsockopt(udpSock, IPPROTO_IP, IP_MULTICAST_IF, (char *)&localInterface, sizeof(localInterface)) < 0)
    {
      perror("Setting local interface error");
      return 0;
    }
    else


    if(sendto(udpSock, payloadComp, 1328, 0, (struct sockaddr*)&groupSock, sizeof(groupSock)) < 0)
    {
        perror("Sending datagram message error");
    }



    }while(1);


    return 0;
}

来自UDP接收器的代码:

#include <sys/types.h>
#include <sys/socket.h>
#include <arpa/inet.h>
#include <netinet/in.h>
#include <stdio.h>
#include <stdlib.h>


#define SOCKET_ERROR        -1
#define BUFFER_SIZE         100
#define PACKETLENGTH        1328


struct sockaddr_in localSock;
struct ip_mreq group;
int sd;
int datalen;
char databuf[PACKETLENGTH];
int i=0;
char addressGroup[]="239.255.25.25";
int groupPort = 5004;





int main(int argc, char *argv[])

{


//Begin Code Multicast UDP
//*************************************************

/* Create a datagram socket on which to receive. */

sd = socket(AF_INET, SOCK_DGRAM, 0);

if(sd < 0)

{

perror("Opening datagram socket error");

exit(1);

}

else

printf("Opening datagram socket for UDP....OK.\n");



/* Enable SO_REUSEADDR to allow multiple instances of this */

/* application to receive copies of the multicast datagrams. */

{

int reuse = 1;

if(setsockopt(sd, SOL_SOCKET, SO_REUSEADDR, (char *)&reuse, sizeof(reuse)) < 0)

{

perror("Setting SO_REUSEADDR error");

close(sd);

exit(1);

}

else

printf("Setting SO_REUSEADDR...OK.\n");

}

memset((char *) &localSock, 0, sizeof(localSock));

localSock.sin_family = AF_INET;

localSock.sin_port = htons(groupPort);

localSock.sin_addr.s_addr = INADDR_ANY;

if(bind(sd, (struct sockaddr*)&localSock, sizeof(localSock)))

{

perror("Binding datagram socket error");

close(sd);

exit(1);

}

else

printf("Binding UDP datagram socket...OK.\n");



group.imr_multiaddr.s_addr = inet_addr(addressGroup);

group.imr_interface.s_addr = INADDR_ANY;


if(setsockopt(sd, IPPROTO_IP, IP_ADD_MEMBERSHIP, (char *)&group, sizeof(group)) < 0)

{

perror("Adding multicast group error");

close(sd);

exit(1);

}

else

printf("Adding multicast group...OK.\n");
printf("Now Receiving Packages from %s Multicast Group\n",&addressGroup);

do{

datalen = sizeof(databuf);

if(read(sd, databuf, datalen) < 0)

{

perror("Reading datagram message error");

close(sd);

exit(1);

}

else

{

printf("Reading UDP datagram message...OK.\n");

printf("The UDP message from multicast server is: \"%s\"\n", databuf);

memset(databuf,0,datalen);

i++;
}
}while(i<=9999);


close(sd);
return 0;

}

也许这是HAL的一个错误,因为当我收到带有Wireshark的两个软件包时,似乎是相同的,但是udp套接字发现了两者之间的区别. 但是,如果这是我的编程错误,我将感到高兴. :-) 谢谢您的帮助!

解决方案

tcpdump -vvv告诉我[bad udp cksum af7f!]

I have written a programm running on Ubuntu LTE that should send an Multicast-Message to 239.255.25.25 Port 5004 using a raw socket. To receive the Multicast, I am using an UDP Socket. The data to send via the socket was captured with wireshark from an rtp stream. The Problem is now, that I am not able to receive the Message with an UDP Socket. For checking if the receiver is correct, I had built an Sender, which is using an normal UDP Socket. When I am now sending the same message via RAW and UDP Socket, i am only able to receive the message sent from the udp socket.

I am using wireshark for analyzing the packages, the multicast package from the raw socket and the multicast package from the udp socket seem to be the same, but why is it not possible to receive the package sent from the raw socket?

Code from the UDP and RAW Socket Sender:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include<stdio.h>
#include<stdlib.h>
#include<sys/socket.h>
#include<features.h>
#include<net/if.h>
#include<linux/if_packet.h>
#include<linux/if_ether.h>
#include<errno.h>
#include<sys/ioctl.h>
#include<net/ethernet.h>
#include<net/if_arp.h>
#include<arpa/inet.h>
#include<netinet/in.h>

#define DEVICE "eth0"


int rawsock;
struct sockaddr_ll sll;
struct ifreq ifr;


unsigned char dataArray[]={0x01, 0x00, 0x5e, 0x7f, 0x19, 0x19, 0x00, 0x0a, 0x5e, 0x56, 0xed, 0x87, 0x08, 0x00, 0x45, 0x00, 0x05, 0x4c, 0x00, 0x00, 0x40, 0x00, 0x01, 0x11, 0xa9, 0xdc, 0xc0, 0xa8, 0x01, 0x04, 0xef, 0xff, 0x19, 0x19, 0x80, 0xda, 0x13, 0x8c, 0x05, 0x38, 0xd0, 0x0e, 0x80, 0xa1, 0xb0, 0x14, 0x9a, 0x7d, 0x01, 0x56, 0xb2, 0x50, 0x00, 0x98, 0x47, 0x40, 0x45, 0x1f, 0x00, 0x00, 0x01, 0xe0, 0x06, 0x2b, 0x80, 0xc0, 0x0a, 0x35, 0x69, 0xf3, 0x0e, 0xbd, 0x15, 0x69, 0xf3, 0x2c, 0x13, 0x00, 0x00, 0x00, 0x01, 0x06, 0x05, 0x11, 0x03, 0x87, 0xf4, 0x4e, 0xcd, 0x0a, 0x4b, 0xdc, 0xa1, 0x94, 0x3a, 0xc3, 0xd4, 0x9b, 0x17, 0x1f, 0x00, 0x80, 0x00, 0x00, 0x00, 0x01, 0x01, 0xa8, 0xc3, 0x60, 0x3a, 0x81, 0xb5, 0x5f, 0xab, 0xf5, 0x7e, 0xaf, 0xd5, 0xfa, 0xbf, 0x57, 0xea, 0xfd, 0x5f, 0xab, 0xf5, 0x7e, 0xaf, 0xd5, 0xfa, 0xbf, 0x57, 0xea, 0xfd, 0x5f, 0xab, 0xf5, 0x7e, 0xaf, 0xd5, 0xfa, 0xbf, 0x57, 0xea, 0xfd, 0x5f, 0xab, 0xf5, 0x7e, 0xaf, 0xd5, 0xfa, 0xbf, 0x57, 0xea, 0xfd, 0x5f, 0xab, 0xf5, 0x7e, 0xaf, 0xd5, 0xfa, 0xbf, 0x57, 0xea, 0xfd, 0x5f, 0xab, 0xf5, 0x7e, 0xaf, 0xd5, 0xfa, 0xbf, 0x57, 0xea, 0xfd, 0x5f, 0xab, 0xf5, 0x7e, 0xaf, 0xd5, 0xe0, 0xda, 0xa9, 0x96, 0xa9, 0x96, 0xa9, 0x96, 0xa9, 0x96, 0xa9, 0x96, 0xa9, 0x96, 0xa9, 0x96, 0xa9, 0x96, 0xa9, 0x96, 0xa9, 0x96, 0xa9, 0x96, 0xa9, 0x96, 0xa9, 0x96, 0xa9, 0x96, 0xa9, 0x96, 0xa9, 0x96, 0xa9, 0x96, 0xa9, 0x96, 0xa9, 0x96, 0xa9, 0x96, 0xa9, 0x96, 0xa9, 0x96, 0xa9, 0x96, 0xa9, 0x96, 0xa9, 0x96, 0xa9, 0x96, 0xa9, 0x96, 0xa9, 0x47, 0x00, 0x44, 0x17, 0xb2, 0x04, 0x6e, 0xb5, 0x36, 0x0d, 0x33, 0x4b, 0x52, 0x6b, 0xcf, 0x87, 0x9b, 0xb2, 0xd9, 0xba, 0xda, 0x94, 0x64, 0xe5, 0x46, 0x58, 0x4c, 0x15, 0x3b, 0x17, 0x31, 0xc4, 0xea, 0x5c, 0x10, 0x89, 0xbe, 0x24, 0x10, 0x84, 0x0a, 0xfc, 0x75, 0x02, 0x54, 0xab, 0xa1, 0x29, 0x00, 0xa8, 0xa8, 0x56, 0x6f, 0x02, 0x54, 0xa9, 0xcc, 0xb4, 0x04, 0xea, 0xb2, 0xbe, 0x10, 0x8d, 0x6c, 0xa0, 0xc2, 0x80, 0x5d, 0x25, 0xe9, 0x5f, 0x0b, 0x09, 0x2c, 0x6b, 0xe7, 0xbc, 0x2f, 0x75, 0x89, 0xea, 0x98, 0xb6, 0xea, 0x0e, 0x2a, 0x1c, 0x12, 0xa9, 0x1d, 0x28, 0x81, 0x3e, 0x5e, 0x2b, 0x33, 0xee, 0xdb, 0x3d, 0x36, 0xd1, 0x57, 0xee, 0x85, 0x35, 0x28, 0x68, 0xfd, 0xd4, 0x71, 0xd8, 0xd7, 0xd5, 0x74, 0x6f, 0xbf, 0xbd, 0xfc, 0xe0, 0x5e, 0x52, 0x04, 0xe3, 0xc5, 0xbb, 0x08, 0x8f, 0xb3, 0x0d, 0xbc, 0x6a, 0x9c, 0x06, 0xe1, 0xb1, 0x67, 0xec, 0xba, 0xfc, 0xaf, 0x75, 0xc8, 0x84, 0x02, 0xa0, 0x6b, 0x08, 0x6d, 0x48, 0xb6, 0x8d, 0xef, 0x14, 0x4d, 0x6e, 0xd0, 0xea, 0x21, 0x94, 0xa8, 0x90, 0xe8, 0x00, 0x9b, 0xb4, 0x71, 0xa1, 0xce, 0x09, 0x04, 0x59, 0x18, 0x8c, 0x5a, 0x88, 0x5a, 0x2f, 0xa0, 0x2d, 0x91, 0xe2, 0x5a, 0xd8, 0x55, 0xe2, 0xa7, 0x54, 0x47, 0x00, 0x45, 0x10, 0x96, 0xa9, 0x96, 0xa9, 0x96, 0xa9, 0x96, 0xa9, 0x96, 0xa9, 0x96, 0xa9, 0x96, 0xa9, 0x96, 0xa9, 0x96, 0xa9, 0x96, 0xa9, 0x96, 0xa9, 0x96, 0xa9, 0x96, 0xa9, 0x96, 0xa9, 0x96, 0xa9, 0x96, 0xa9, 0x96, 0xa9, 0x96, 0xa9, 0x96, 0xa9, 0x96, 0xa9, 0x96, 0xa9, 0x96, 0xa9, 0x96, 0xa9, 0x96, 0xa9, 0x96, 0xa9, 0x96, 0xa9, 0xd6, 0xa9, 0xd6, 0xa9, 0xd6, 0xa9, 0xd6, 0xa9, 0xd6, 0xa9, 0xd6, 0xa9, 0xd6, 0xa9, 0xd6, 0xa9, 0xd6, 0xa9, 0xd6, 0xa9, 0xd6, 0xa9, 0xd6, 0xa9, 0xd6, 0xa9, 0xd6, 0xa9, 0xd6, 0xa9, 0xd6, 0xa9, 0xd6, 0xa9, 0xd6, 0xa9, 0xd6, 0xa9, 0xd6, 0xa9, 0xd6, 0xa9, 0xd6, 0xa9, 0xd6, 0xa9, 0xd6, 0xa9, 0xd6, 0xa9, 0xd6, 0xa9, 0xd6, 0xa9, 0xd6, 0xa9, 0xd6, 0xa9, 0xd6, 0xa9, 0xd4, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0xe8, 0xa3, 0x0d, 0x80, 0xea, 0xd5, 0x3a, 0xd5, 0x3a, 0xd5, 0x3a, 0xd5, 0x3a, 0xd5, 0x3a, 0xd5, 0x3a, 0xd5, 0x3a, 0xd5, 0x3a, 0xd5, 0x3a, 0xd5, 0x3a, 0xd5, 0x3a, 0xd5, 0x3a, 0xd5, 0x3a, 0xd5, 0x3a, 0xd5, 0x3a, 0xd5, 0x3a, 0xd5, 0x3a, 0xd5, 0x3a, 0xd5, 0x3a, 0xd5, 0x3a, 0xd5, 0x3a, 0xd5, 0x3a, 0x06, 0xd5, 0x47, 0x7a, 0xa3, 0xbd, 0x51, 0xde, 0xa8, 0xef, 0x54, 0x77, 0xaa, 0x3b, 0xd5, 0x1d, 0x47, 0x00, 0x45, 0x11, 0xea, 0x8e, 0xf5, 0x47, 0x7a, 0xa3, 0xbd, 0x51, 0xde, 0xa8, 0xef, 0x54, 0x77, 0xaa, 0x3b, 0xd5, 0x1d, 0xea, 0x8e, 0xf5, 0x47, 0x7a, 0xa3, 0xbd, 0x51, 0xde, 0xa8, 0xef, 0x54, 0x77, 0xaa, 0x3b, 0xd5, 0x1d, 0xea, 0x8e, 0xf5, 0x47, 0x7a, 0xa3, 0xbd, 0x51, 0xde, 0xa8, 0xef, 0x54, 0x77, 0xaa, 0x3b, 0xd5, 0x1d, 0xea, 0x8e, 0xf5, 0x47, 0x7a, 0xa3, 0xbd, 0x51, 0xde, 0xa8, 0xef, 0x54, 0x77, 0xaa, 0x3b, 0xd5, 0x1d, 0xea, 0x8e, 0xf5, 0x47, 0x7a, 0xa3, 0xbd, 0x51, 0xde, 0xa8, 0xef, 0x54, 0x77, 0xaa, 0x3b, 0xd5, 0x1d, 0xea, 0x8e, 0xf5, 0x47, 0x7a, 0xa3, 0xbd, 0x51, 0xde, 0xa8, 0xef, 0x54, 0x76, 0x0d, 0xaa, 0x99, 0x03, 0x5a, 0xb1, 0xff, 0xff, 0xff, 0xf0, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0xf4, 0x28, 0xc3, 0x60, 0x3a, 0xb5, 0x63, 0x9e, 0xc7, 0xd2, 0xb4, 0xd6, 0x7a, 0xfa, 0x56, 0x9a, 0xcf, 0x5f, 0xda, 0x6b, 0x3d, 0x8f, 0xd2, 0x69, 0xac, 0xf5, 0xf4, 0x12, 0x4d, 0x34, 0xe7, 0xaf, 0xa4, 0x82, 0x69, 0xac, 0xf6, 0x3e, 0x95, 0xa6, 0xb3, 0xd7, 0xd2, 0xb4, 0xd6, 0x7a, 0xfd, 0x26, 0x9a, 0xcf, 0x63, 0xf4, 0x9a, 0x6b};
unsigned char dataArray2[]={0x3d, 0x8f, 0xd2, 0x69, 0xac, 0xf5, 0xfd, 0xa6, 0xb3, 0xd8, 0xfa, 0x56, 0x9a, 0xd5, 0x8e, 0x7b, 0x47, 0x00, 0x44, 0x38, 0x88, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xbc, 0x0e, 0x64, 0xb2, 0x4c, 0x11, 0xe8, 0x39, 0x16, 0x93, 0x5a, 0x74, 0x0d, 0x1c, 0xf6, 0x2b, 0x55, 0x50, 0x14, 0xe5, 0x81, 0xac, 0xe4, 0xf3, 0x02, 0xa4, 0x50, 0x05, 0x9a, 0x4e, 0x37, 0x79, 0x4c, 0x01, 0x13, 0xc5, 0x8c, 0x6f, 0x9b, 0x43, 0x03, 0xe1, 0x82, 0xb2, 0x27, 0x2a, 0xf0, 0x47, 0x40, 0x44, 0x19, 0x00, 0x00, 0x01, 0xc0, 0x01, 0x90, 0x80, 0x80, 0x05, 0x25, 0x69, 0xf3, 0x34, 0xe3, 0xff, 0xf1, 0x4c, 0x80, 0x31, 0x1f, 0xfc, 0x21, 0x0a, 0xd4, 0x13, 0x7c, 0x88, 0x21, 0x08, 0x15, 0xfa, 0xdd, 0xdd, 0x45, 0x25, 0x4a, 0x95, 0x56, 0x02, 0x51, 0x02, 0xb3, 0x39, 0x00, 0x11, 0x06, 0x02, 0xc7, 0xda, 0x4d, 0xad, 0x5f, 0x84, 0xe7, 0x22, 0x5a, 0xb7, 0xca, 0x27, 0x7a, 0xb5, 0x09, 0xd8, 0x83, 0x73, 0x07, 0x6b, 0xb0, 0x34, 0x11, 0x02, 0x18, 0x9d, 0xf5, 0xda, 0x44, 0x73, 0x9b, 0x55, 0xc0, 0x8a, 0x00, 0x77, 0x2b, 0x84, 0xb7, 0x25, 0xc2, 0xa9, 0x43, 0x68, 0x85, 0x67, 0xa4, 0x69, 0xc6, 0x1e, 0x45, 0x75, 0x46, 0xbe, 0x4b, 0x32, 0x2b, 0xef, 0xba, 0x14, 0xd5, 0xc8, 0xb7, 0x97, 0x5a, 0xa4, 0x95, 0x4e, 0xf7, 0x25, 0xf0, 0x96, 0x05, 0xc1, 0x48, 0x32, 0x85, 0x2f, 0x0c, 0x30, 0x57, 0xb3, 0xac, 0x39, 0x19, 0x01, 0x95, 0x52, 0x0d, 0x07, 0x10, 0xf0, 0x46, 0xa8, 0xb4, 0xe8, 0x2b, 0xab, 0xad, 0x73, 0x2d, 0xf9, 0x4c, 0xc8, 0x31, 0x4a, 0xde, 0x7b, 0x01, 0x11, 0x21, 0x7c, 0x29, 0x4f, 0x01, 0x17, 0x17, 0xca, 0x9f, 0x04, 0x6b, 0x37, 0x59, 0x8e, 0x31, 0xbe, 0xba, 0x0d, 0xe9, 0x8b, 0x8d, 0xa5, 0x6a, 0xad, 0x50, 0x60, 0x96, 0x47, 0x00, 0x45, 0x12, 0x1f, 0x4a, 0xd3, 0x59, 0xeb, 0xfb, 0x4d, 0x67, 0xb1, 0xfa, 0x4d, 0x35, 0x9e, 0xbe, 0x82, 0x49, 0xa6, 0x9c, 0xf6, 0x3e, 0x95, 0xa6, 0xb3, 0xd8, 0xfa, 0x56, 0x9a, 0xcf, 0x5f, 0x4a, 0xd3, 0x59, 0xeb, 0xf4, 0x9a, 0x6b, 0x3d, 0x8f, 0xd2, 0x69, 0xac, 0xf6, 0x3f, 0x49, 0xa6, 0xb3, 0xd7, 0xf6, 0x9a, 0x53, 0xd7, 0xd2, 0x41, 0x34, 0xd6, 0x7b, 0x1f, 0x4a, 0xd3, 0x59, 0xeb, 0xfb, 0x4d, 0x67, 0xb1, 0xfa, 0x4d, 0x35, 0x9e, 0xbe, 0x82, 0x49, 0xa6, 0xb3, 0xd8, 0xfd, 0x26, 0x9a, 0xcf, 0x5f, 0xda, 0x6b, 0x3d, 0x8f, 0xa5, 0x69, 0xac, 0xf6, 0x3e, 0x95, 0xa6, 0xb3, 0xd7, 0xd2, 0xb4, 0xd6, 0x7a, 0xfd, 0x26, 0x9a, 0xcf, 0x63, 0xf4, 0x9a, 0x6b, 0x54, 0x74, 0xea, 0x8e, 0x9d, 0x51, 0xd3, 0xaa, 0x3a, 0x75, 0x47, 0x4e, 0xa8, 0xe9, 0xd5, 0x1d, 0x3a, 0xa3, 0xa7, 0x54, 0x74, 0xea, 0x8e, 0x9d, 0x51, 0xd3, 0xaa, 0x3a, 0x75, 0x47, 0x4e, 0xa8, 0xe9, 0xd5, 0x1d, 0x3a, 0xa3, 0xa7, 0x54, 0x74, 0xea, 0x8e, 0x9d, 0x51, 0xd3, 0xaa, 0x3a, 0x75, 0x47, 0x4e, 0xa8, 0xe9, 0xd5, 0x1d, 0x3a, 0xa3, 0xa7, 0x54, 0x74, 0xea, 0x8e, 0x9d, 0x51, 0xd3, 0xaa, 0x3a, 0x75, 0x47, 0x4e, 0xa8, 0xe9, 0xd5, 0x1d, 0x3a, 0xa3, 0xa7, 0x54, 0x74, 0xea};

unsigned char dataComp[1370];



//UDP Socket Variablen


struct in_addr localInterface;
struct sockaddr_in groupSock;
int udpSock;
char groupAddress[]="239.255.25.25";
int groupPort = 5004;






unsigned char payloadOnly[]={0x80, 0xa1, 0xb0, 0x14, 0x9a, 0x7d, 0x01, 0x56, 0xb2, 0x50, 0x00, 0x98, 0x47, 0x40, 0x45, 0x1f, 0x00, 0x00, 0x01, 0xe0, 0x06, 0x2b, 0x80, 0xc0, 0x0a, 0x35, 0x69, 0xf3, 0x0e, 0xbd, 0x15, 0x69, 0xf3, 0x2c, 0x13, 0x00, 0x00, 0x00, 0x01, 0x06, 0x05, 0x11, 0x03, 0x87, 0xf4, 0x4e, 0xcd, 0x0a, 0x4b, 0xdc, 0xa1, 0x94, 0x3a, 0xc3, 0xd4, 0x9b, 0x17, 0x1f, 0x00, 0x80, 0x00, 0x00, 0x00, 0x01, 0x01, 0xa8, 0xc3, 0x60, 0x3a, 0x81, 0xb5, 0x5f, 0xab, 0xf5, 0x7e, 0xaf, 0xd5, 0xfa, 0xbf, 0x57, 0xea, 0xfd, 0x5f, 0xab, 0xf5, 0x7e, 0xaf, 0xd5, 0xfa, 0xbf, 0x57, 0xea, 0xfd, 0x5f, 0xab, 0xf5, 0x7e, 0xaf, 0xd5, 0xfa, 0xbf, 0x57, 0xea, 0xfd, 0x5f, 0xab, 0xf5, 0x7e, 0xaf, 0xd5, 0xfa, 0xbf, 0x57, 0xea, 0xfd, 0x5f, 0xab, 0xf5, 0x7e, 0xaf, 0xd5, 0xfa, 0xbf, 0x57, 0xea, 0xfd, 0x5f, 0xab, 0xf5, 0x7e, 0xaf, 0xd5, 0xfa, 0xbf, 0x57, 0xea, 0xfd, 0x5f, 0xab, 0xf5, 0x7e, 0xaf, 0xd5, 0xe0, 0xda, 0xa9, 0x96, 0xa9, 0x96, 0xa9, 0x96, 0xa9, 0x96, 0xa9, 0x96, 0xa9, 0x96, 0xa9, 0x96, 0xa9, 0x96, 0xa9, 0x96, 0xa9, 0x96, 0xa9, 0x96, 0xa9, 0x96, 0xa9, 0x96, 0xa9, 0x96, 0xa9, 0x96, 0xa9, 0x96, 0xa9, 0x96, 0xa9, 0x96, 0xa9, 0x96, 0xa9, 0x96, 0xa9, 0x96, 0xa9, 0x96, 0xa9, 0x96, 0xa9, 0x96, 0xa9, 0x96, 0xa9, 0x96, 0xa9, 0x96, 0xa9, 0x47, 0x00, 0x44, 0x17, 0xb2, 0x04, 0x6e, 0xb5, 0x36, 0x0d, 0x33, 0x4b, 0x52, 0x6b, 0xcf, 0x87, 0x9b, 0xb2, 0xd9, 0xba, 0xda, 0x94, 0x64, 0xe5, 0x46, 0x58, 0x4c, 0x15, 0x3b, 0x17, 0x31, 0xc4, 0xea, 0x5c, 0x10, 0x89, 0xbe, 0x24, 0x10, 0x84, 0x0a, 0xfc, 0x75, 0x02, 0x54, 0xab, 0xa1, 0x29, 0x00, 0xa8, 0xa8, 0x56, 0x6f, 0x02, 0x54, 0xa9, 0xcc, 0xb4, 0x04, 0xea, 0xb2, 0xbe, 0x10, 0x8d, 0x6c, 0xa0, 0xc2, 0x80, 0x5d, 0x25, 0xe9, 0x5f, 0x0b, 0x09, 0x2c, 0x6b, 0xe7, 0xbc, 0x2f, 0x75, 0x89, 0xea, 0x98, 0xb6, 0xea, 0x0e, 0x2a, 0x1c, 0x12, 0xa9, 0x1d, 0x28, 0x81, 0x3e, 0x5e, 0x2b, 0x33, 0xee, 0xdb, 0x3d, 0x36, 0xd1, 0x57, 0xee, 0x85, 0x35, 0x28, 0x68, 0xfd, 0xd4, 0x71, 0xd8, 0xd7, 0xd5, 0x74, 0x6f, 0xbf, 0xbd, 0xfc, 0xe0, 0x5e, 0x52, 0x04, 0xe3, 0xc5, 0xbb, 0x08, 0x8f, 0xb3, 0x0d, 0xbc, 0x6a, 0x9c, 0x06, 0xe1, 0xb1, 0x67, 0xec, 0xba, 0xfc, 0xaf, 0x75, 0xc8, 0x84, 0x02, 0xa0, 0x6b, 0x08, 0x6d, 0x48, 0xb6, 0x8d, 0xef, 0x14, 0x4d, 0x6e, 0xd0, 0xea, 0x21, 0x94, 0xa8, 0x90, 0xe8, 0x00, 0x9b, 0xb4, 0x71, 0xa1, 0xce, 0x09, 0x04, 0x59, 0x18, 0x8c, 0x5a, 0x88, 0x5a, 0x2f, 0xa0, 0x2d, 0x91, 0xe2, 0x5a, 0xd8, 0x55, 0xe2, 0xa7, 0x54, 0x47, 0x00, 0x45, 0x10, 0x96, 0xa9, 0x96, 0xa9, 0x96, 0xa9, 0x96, 0xa9, 0x96, 0xa9, 0x96, 0xa9, 0x96, 0xa9, 0x96, 0xa9, 0x96, 0xa9, 0x96, 0xa9, 0x96, 0xa9, 0x96, 0xa9, 0x96, 0xa9, 0x96, 0xa9, 0x96, 0xa9, 0x96, 0xa9, 0x96, 0xa9, 0x96, 0xa9, 0x96, 0xa9, 0x96, 0xa9, 0x96, 0xa9, 0x96, 0xa9, 0x96, 0xa9, 0x96, 0xa9, 0x96, 0xa9, 0x96, 0xa9, 0xd6, 0xa9, 0xd6, 0xa9, 0xd6, 0xa9, 0xd6, 0xa9, 0xd6, 0xa9, 0xd6, 0xa9, 0xd6, 0xa9, 0xd6, 0xa9, 0xd6, 0xa9, 0xd6, 0xa9, 0xd6, 0xa9, 0xd6, 0xa9, 0xd6, 0xa9, 0xd6, 0xa9, 0xd6, 0xa9, 0xd6, 0xa9, 0xd6, 0xa9, 0xd6, 0xa9, 0xd6, 0xa9, 0xd6, 0xa9, 0xd6, 0xa9, 0xd6, 0xa9, 0xd6, 0xa9, 0xd6, 0xa9, 0xd6, 0xa9, 0xd6, 0xa9, 0xd6, 0xa9, 0xd6, 0xa9, 0xd6, 0xa9, 0xd6, 0xa9, 0xd4, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0xe8, 0xa3, 0x0d, 0x80, 0xea, 0xd5, 0x3a, 0xd5, 0x3a, 0xd5, 0x3a, 0xd5, 0x3a, 0xd5, 0x3a, 0xd5, 0x3a, 0xd5, 0x3a, 0xd5, 0x3a, 0xd5, 0x3a, 0xd5, 0x3a, 0xd5, 0x3a, 0xd5, 0x3a, 0xd5, 0x3a, 0xd5, 0x3a, 0xd5, 0x3a, 0xd5, 0x3a, 0xd5, 0x3a, 0xd5, 0x3a, 0xd5, 0x3a, 0xd5, 0x3a, 0xd5, 0x3a, 0xd5, 0x3a, 0x06, 0xd5, 0x47, 0x7a, 0xa3, 0xbd, 0x51, 0xde, 0xa8, 0xef, 0x54, 0x77, 0xaa, 0x3b, 0xd5, 0x1d, 0x47, 0x00, 0x45, 0x11, 0xea, 0x8e, 0xf5, 0x47, 0x7a, 0xa3, 0xbd, 0x51, 0xde, 0xa8, 0xef, 0x54, 0x77, 0xaa, 0x3b, 0xd5, 0x1d, 0xea, 0x8e, 0xf5, 0x47, 0x7a, 0xa3, 0xbd, 0x51, 0xde, 0xa8, 0xef, 0x54, 0x77, 0xaa, 0x3b, 0xd5, 0x1d, 0xea, 0x8e, 0xf5, 0x47, 0x7a, 0xa3, 0xbd, 0x51, 0xde, 0xa8, 0xef, 0x54, 0x77, 0xaa, 0x3b, 0xd5, 0x1d, 0xea, 0x8e, 0xf5, 0x47, 0x7a, 0xa3, 0xbd, 0x51, 0xde, 0xa8, 0xef, 0x54, 0x77, 0xaa, 0x3b, 0xd5, 0x1d, 0xea, 0x8e, 0xf5, 0x47, 0x7a, 0xa3, 0xbd, 0x51, 0xde, 0xa8, 0xef, 0x54, 0x77, 0xaa, 0x3b, 0xd5, 0x1d, 0xea, 0x8e, 0xf5, 0x47, 0x7a, 0xa3, 0xbd, 0x51, 0xde, 0xa8, 0xef, 0x54, 0x76, 0x0d, 0xaa, 0x99, 0x03, 0x5a, 0xb1, 0xff, 0xff, 0xff, 0xf0, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0xf4, 0x28, 0xc3, 0x60, 0x3a, 0xb5, 0x63, 0x9e, 0xc7, 0xd2, 0xb4, 0xd6, 0x7a, 0xfa, 0x56, 0x9a, 0xcf, 0x5f, 0xda, 0x6b, 0x3d, 0x8f, 0xd2, 0x69, 0xac, 0xf5, 0xf4, 0x12, 0x4d, 0x34, 0xe7, 0xaf, 0xa4, 0x82, 0x69, 0xac, 0xf6, 0x3e, 0x95, 0xa6, 0xb3, 0xd7, 0xd2, 0xb4, 0xd6, 0x7a, 0xfd, 0x26, 0x9a, 0xcf, 0x63, 0xf4, 0x9a, 0x6b};
unsigned char payloadOnly2[]={0x3d, 0x8f, 0xd2, 0x69, 0xac, 0xf5, 0xfd, 0xa6, 0xb3, 0xd8, 0xfa, 0x56, 0x9a, 0xd5, 0x8e, 0x7b, 0x47, 0x00, 0x44, 0x38, 0x88, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xbc, 0x0e, 0x64, 0xb2, 0x4c, 0x11, 0xe8, 0x39, 0x16, 0x93, 0x5a, 0x74, 0x0d, 0x1c, 0xf6, 0x2b, 0x55, 0x50, 0x14, 0xe5, 0x81, 0xac, 0xe4, 0xf3, 0x02, 0xa4, 0x50, 0x05, 0x9a, 0x4e, 0x37, 0x79, 0x4c, 0x01, 0x13, 0xc5, 0x8c, 0x6f, 0x9b, 0x43, 0x03, 0xe1, 0x82, 0xb2, 0x27, 0x2a, 0xf0, 0x47, 0x40, 0x44, 0x19, 0x00, 0x00, 0x01, 0xc0, 0x01, 0x90, 0x80, 0x80, 0x05, 0x25, 0x69, 0xf3, 0x34, 0xe3, 0xff, 0xf1, 0x4c, 0x80, 0x31, 0x1f, 0xfc, 0x21, 0x0a, 0xd4, 0x13, 0x7c, 0x88, 0x21, 0x08, 0x15, 0xfa, 0xdd, 0xdd, 0x45, 0x25, 0x4a, 0x95, 0x56, 0x02, 0x51, 0x02, 0xb3, 0x39, 0x00, 0x11, 0x06, 0x02, 0xc7, 0xda, 0x4d, 0xad, 0x5f, 0x84, 0xe7, 0x22, 0x5a, 0xb7, 0xca, 0x27, 0x7a, 0xb5, 0x09, 0xd8, 0x83, 0x73, 0x07, 0x6b, 0xb0, 0x34, 0x11, 0x02, 0x18, 0x9d, 0xf5, 0xda, 0x44, 0x73, 0x9b, 0x55, 0xc0, 0x8a, 0x00, 0x77, 0x2b, 0x84, 0xb7, 0x25, 0xc2, 0xa9, 0x43, 0x68, 0x85, 0x67, 0xa4, 0x69, 0xc6, 0x1e, 0x45, 0x75, 0x46, 0xbe, 0x4b, 0x32, 0x2b, 0xef, 0xba, 0x14, 0xd5, 0xc8, 0xb7, 0x97, 0x5a, 0xa4, 0x95, 0x4e, 0xf7, 0x25, 0xf0, 0x96, 0x05, 0xc1, 0x48, 0x32, 0x85, 0x2f, 0x0c, 0x30, 0x57, 0xb3, 0xac, 0x39, 0x19, 0x01, 0x95, 0x52, 0x0d, 0x07, 0x10, 0xf0, 0x46, 0xa8, 0xb4, 0xe8, 0x2b, 0xab, 0xad, 0x73, 0x2d, 0xf9, 0x4c, 0xc8, 0x31, 0x4a, 0xde, 0x7b, 0x01, 0x11, 0x21, 0x7c, 0x29, 0x4f, 0x01, 0x17, 0x17, 0xca, 0x9f, 0x04, 0x6b, 0x37, 0x59, 0x8e, 0x31, 0xbe, 0xba, 0x0d, 0xe9, 0x8b, 0x8d, 0xa5, 0x6a, 0xad, 0x50, 0x60, 0x96, 0x47, 0x00, 0x45, 0x12, 0x1f, 0x4a, 0xd3, 0x59, 0xeb, 0xfb, 0x4d, 0x67, 0xb1, 0xfa, 0x4d, 0x35, 0x9e, 0xbe, 0x82, 0x49, 0xa6, 0x9c, 0xf6, 0x3e, 0x95, 0xa6, 0xb3, 0xd8, 0xfa, 0x56, 0x9a, 0xcf, 0x5f, 0x4a, 0xd3, 0x59, 0xeb, 0xf4, 0x9a, 0x6b, 0x3d, 0x8f, 0xd2, 0x69, 0xac, 0xf6, 0x3f, 0x49, 0xa6, 0xb3, 0xd7, 0xf6, 0x9a, 0x53, 0xd7, 0xd2, 0x41, 0x34, 0xd6, 0x7b, 0x1f, 0x4a, 0xd3, 0x59, 0xeb, 0xfb, 0x4d, 0x67, 0xb1, 0xfa, 0x4d, 0x35, 0x9e, 0xbe, 0x82, 0x49, 0xa6, 0xb3, 0xd8, 0xfd, 0x26, 0x9a, 0xcf, 0x5f, 0xda, 0x6b, 0x3d, 0x8f, 0xa5, 0x69, 0xac, 0xf6, 0x3e, 0x95, 0xa6, 0xb3, 0xd7, 0xd2, 0xb4, 0xd6, 0x7a, 0xfd, 0x26, 0x9a, 0xcf, 0x63, 0xf4, 0x9a, 0x6b, 0x54, 0x74, 0xea, 0x8e, 0x9d, 0x51, 0xd3, 0xaa, 0x3a, 0x75, 0x47, 0x4e, 0xa8, 0xe9, 0xd5, 0x1d, 0x3a, 0xa3, 0xa7, 0x54, 0x74, 0xea, 0x8e, 0x9d, 0x51, 0xd3, 0xaa, 0x3a, 0x75, 0x47, 0x4e, 0xa8, 0xe9, 0xd5, 0x1d, 0x3a, 0xa3, 0xa7, 0x54, 0x74, 0xea, 0x8e, 0x9d, 0x51, 0xd3, 0xaa, 0x3a, 0x75, 0x47, 0x4e, 0xa8, 0xe9, 0xd5, 0x1d, 0x3a, 0xa3, 0xa7, 0x54, 0x74, 0xea, 0x8e, 0x9d, 0x51, 0xd3, 0xaa, 0x3a, 0x75, 0x47, 0x4e, 0xa8, 0xe9, 0xd5, 0x1d, 0x3a, 0xa3, 0xa7, 0x54, 0x74, 0xea};

unsigned char payloadComp[1328];



int main()
{

    do{

    memmove(dataComp, dataArray,sizeof(dataArray));
    memmove(&dataComp[sizeof(dataArray)],dataArray2,(sizeof(dataArray2)));

    printf("Press Enter for Sending Multicast via RAW Socket...\n");
    getchar();

    //RAW Socket


    if ((rawsock = socket(AF_PACKET, SOCK_RAW, htons(ETH_P_ALL)))== -1)
    {
        perror("Error creating raw socket: ");
        exit(-1);
    }

    bzero(&sll, sizeof(sll));
    bzero(&ifr, sizeof(ifr));


    strncpy((char *)ifr.ifr_name, DEVICE, IFNAMSIZ);
    if ((ioctl(rawsock, SIOCGIFINDEX, &ifr)) == -1)
    {
        printf("Error getting Interface index !\n");
        exit(-1);
    }


    sll.sll_family = AF_PACKET;
    sll.sll_ifindex = ifr.ifr_ifindex;


    if(sendto(rawsock, dataComp, 1370, 0, (struct sockaddr *)&sll, sizeof(sll)) < 0)
    {
        perror("Sending datagram message error");
    }


 //UDP Socket
    printf("For Sending Multicast via UDP Socket press Enter \n");
    getchar();

    memmove(payloadComp, payloadOnly, sizeof(payloadOnly));
    memmove(&payloadComp[sizeof(payloadOnly)],payloadOnly2,(sizeof(payloadOnly)));

    udpSock = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP);
    if(udpSock < 0)
    {
      perror("Opening datagram socket error");
      return 0;
    }
    else

    memset((char *) &groupSock, 0, sizeof(groupSock));
    groupSock.sin_family = AF_INET;
    groupSock.sin_addr.s_addr = inet_addr(groupAddress); //Multicast Adress
    groupSock.sin_port = htons(groupPort);                 //Port for Multicast
    localInterface.s_addr = inet_addr("192.168.1.4");
    if(setsockopt(udpSock, IPPROTO_IP, IP_MULTICAST_IF, (char *)&localInterface, sizeof(localInterface)) < 0)
    {
      perror("Setting local interface error");
      return 0;
    }
    else


    if(sendto(udpSock, payloadComp, 1328, 0, (struct sockaddr*)&groupSock, sizeof(groupSock)) < 0)
    {
        perror("Sending datagram message error");
    }



    }while(1);


    return 0;
}

Code from the UDP Receiver:

#include <sys/types.h>
#include <sys/socket.h>
#include <arpa/inet.h>
#include <netinet/in.h>
#include <stdio.h>
#include <stdlib.h>


#define SOCKET_ERROR        -1
#define BUFFER_SIZE         100
#define PACKETLENGTH        1328


struct sockaddr_in localSock;
struct ip_mreq group;
int sd;
int datalen;
char databuf[PACKETLENGTH];
int i=0;
char addressGroup[]="239.255.25.25";
int groupPort = 5004;





int main(int argc, char *argv[])

{


//Begin Code Multicast UDP
//*************************************************

/* Create a datagram socket on which to receive. */

sd = socket(AF_INET, SOCK_DGRAM, 0);

if(sd < 0)

{

perror("Opening datagram socket error");

exit(1);

}

else

printf("Opening datagram socket for UDP....OK.\n");



/* Enable SO_REUSEADDR to allow multiple instances of this */

/* application to receive copies of the multicast datagrams. */

{

int reuse = 1;

if(setsockopt(sd, SOL_SOCKET, SO_REUSEADDR, (char *)&reuse, sizeof(reuse)) < 0)

{

perror("Setting SO_REUSEADDR error");

close(sd);

exit(1);

}

else

printf("Setting SO_REUSEADDR...OK.\n");

}

memset((char *) &localSock, 0, sizeof(localSock));

localSock.sin_family = AF_INET;

localSock.sin_port = htons(groupPort);

localSock.sin_addr.s_addr = INADDR_ANY;

if(bind(sd, (struct sockaddr*)&localSock, sizeof(localSock)))

{

perror("Binding datagram socket error");

close(sd);

exit(1);

}

else

printf("Binding UDP datagram socket...OK.\n");



group.imr_multiaddr.s_addr = inet_addr(addressGroup);

group.imr_interface.s_addr = INADDR_ANY;


if(setsockopt(sd, IPPROTO_IP, IP_ADD_MEMBERSHIP, (char *)&group, sizeof(group)) < 0)

{

perror("Adding multicast group error");

close(sd);

exit(1);

}

else

printf("Adding multicast group...OK.\n");
printf("Now Receiving Packages from %s Multicast Group\n",&addressGroup);

do{

datalen = sizeof(databuf);

if(read(sd, databuf, datalen) < 0)

{

perror("Reading datagram message error");

close(sd);

exit(1);

}

else

{

printf("Reading UDP datagram message...OK.\n");

printf("The UDP message from multicast server is: \"%s\"\n", databuf);

memset(databuf,0,datalen);

i++;
}
}while(i<=9999);


close(sd);
return 0;

}

Maybe it is an fault in the HAL, because when i'm receiving the two packages with wireshark, it seems that the are identical, but the udp socket had found a difference between both of them. But I would be glad if it is an programming fault from me. :-) Thanks for the help!

解决方案

tcpdump -vvv tells me [bad udp cksum af7f!]

这篇关于在Linux上使用C在RAW套接字上发送多播的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆