Hello,
I have an problem and after one week I'm at one's wits' end. I wrote a client
that send a raw message to a second system. That works. Now I want to wait for
a
request form the second system befor I send my message. The second system sends
an broadcast, but my program isn't able to receive that. Here is my code:
RT_TASK *lxrtnettsk;
char msg[60];
char msgRecv[60];
unsigned char src_mac[6] = {0x00, 0x10, 0xa7, 0x23, 0x4f, 0x17};
int transmittionTime=1000;//Zeit in Milisekunden
int sendLoops = 2;
static struct sockaddr_ll newAddr;
struct ifreq newIfr;
struct ether_header *eth = (struct ether_header *)msg;
int ret = 0;
int newSocket = 0;
int count = 0;
sprintf(msg, "Used RTAI, RTnet and UDP!");
system("sh ModuleEinbindenJitterTestXPC.sh");
cout << msg << endl;
mlockall(MCL_CURRENT|MCL_FUTURE);
memset(eth->ether_dhost, 0xFF, ETH_HLEN);
eth->ether_type=htons(0x1234);
strncpy(newIfr.ifr_name, "rteth0", IFNAMSIZ);
newSocket = rt_dev_socket(AF_PACKET, SOCK_RAW, 0);
//RAW communication
newAddr.sll_family = PF_PACKET;
newAddr.sll_protocol = htons(ETH_P_IP);
newAddr.sll_ifindex= 2;
newAddr.sll_hatype = 1;//ARPHRD_ETHER;
newAddr.sll_pkttype = PACKET_OTHERHOST;
newAddr.sll_halen = ETH_ALEN;
//MAC - Begin
newAddr.sll_addr[0] = src_mac[0];
newAddr.sll_addr[1] = src_mac[1];
newAddr.sll_addr[2] = src_mac[2];
newAddr.sll_addr[3] = src_mac[3];
newAddr.sll_addr[4] = src_mac[4];
newAddr.sll_addr[5] = src_mac[5];
//MAC - End
newAddr.sll_addr[6] = 0x00; //not used
newAddr.sll_addr[7] = 0x00; //not used
lxrtnettsk = rt_task_init(4800, 1, 0, 0);
if (NULL == lxrtnettsk)
{
rt_dev_close(newSocket);
printf("CANNOT INIT MASTER TASK\n");
exit(1);
}
rt_make_hard_real_time();
start_rt_timer(0);
ret = rt_dev_bind(newSocket, (struct sockaddr *)&newAddr, sizeof(newAddr));
cout << "newBind: " << ret << endl;
while(count<sendLoops)
{
ret = rt_dev_recv(newSocket, msgRecv, 60, 0);
ret = rt_dev_send(newSocket, msg, sizeof(msg), 0);
rt_sleep(1000000);
count++;
}
rt_make_soft_real_time();
rt_dev_close(newSocket);
rt_task_delete(lxrtnettsk);
Some Ideas?
Regards,
Franz
------------------------------------------------------------------------------
Start uncovering the many advantages of virtual appliances
and start using them to simplify application deployment and
accelerate your shift to cloud computing
http://p.sf.net/sfu/novell-sfdev2dev
_______________________________________________
RTnet-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/rtnet-users