Dear,
How can I use rtnet to
send or receive packet in c? i am a bit confused because no examples or
tutorial to build the program using rtnet while I search it in internet.
i want to make a real time packet sending program and a real time
packet receiver program using rtnet 0.9.12 and xenomai 2.5.4. the
operating system that I use is linux fedora 13 kernel 2.6.32.11.
Is
it just add some include and some lines from standard udp packet server
and client program?
thanks a lot
==========================
//the
standard udp packet server that I build (server.c)
#include
<stdio.h>
#include <stdlib.h>
#include
<unistd.h>
#include <string.h>
#include
<netinet/in.h>
#include <arpa/inet.h>
#include
<sys/types.h>
#include <sys/socket.h>
#include
<mqueue.h>
#include <fcntl.h>
#include
<sys/stat.h>
#include <pthread.h>
#include
<sys/mman.h>
#include <signal.h>
#include
<limits.h>
#define PORT 7788
#define BUFLEN 65000
#define
NPACK 10000000
void diep (char *s)
{
perror (s);
exit (1);
}
int main (void)
{
struct sockaddr_in
si_me, si_other;
int s, i, slen=sizeof(si_other);
char
buf[BUFLEN];
if ((s=socket(AF_INET, SOCK_DGRAM,
IPPROTO_UDP))== -1)
{
diep("socket");
}
memset ((char *) &si_me, 0, sizeof(si_me));
si_me.sin_family
= AF_INET;
si_me.sin_port = htons(PORT);
si_me.sin_addr.s_addr = htonl(INADDR_ANY);
if (bind(s,
&si_me, sizeof(si_me)) == -1)
{
diep("bind");
}
for(i = 0; i < NPACK; i++)
{
if(recvfrom(s, buf, BUFLEN, 0, &si_other, &slen) == -1)
{
diep("recvfrom()");
}
printf("received packet from %s:%d\n Data: %s\n\n",
inet_ntoa(si_other.sin_addr), ntohs(si_other.sin_port), buf);
}
close(s);
return 0;
}
=============================
//the
standard udp packet client (client.c)
#include <stdlib.h>
#include
<unistd.h>
#include <string.h>
#include
<netinet/in.h>
#include <arpa/inet.h>
#include
<sys/types.h>
#include <sys/socket.h>
#include
<mqueue.h>
#include <fcntl.h>
#include
<sys/stat.h>
#include <pthread.h>
#include
<sys/mman.h>
#include <signal.h>
#include
<limits.h>
#define PORT 7788
#define BUFLEN 65000
#define
NPACK 10000000
#define SRV_IP "167.205.34.150"
void diep
(char *s)
{
perror (s);
exit (1);
}
int main
()
{
struct sockaddr_in si_other;
int s, i,
slen=sizeof(si_other);
char buf[BUFLEN];
if((s=socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP)) == -1)
{
diep("socket");
}
memset((char *) &si_other, 0, sizeof(si_other));
si_other.sin_family=AF_INET;
si_other.sin_port = htons(PORT);
if(inet_aton(SRV_IP, &si_other.sin_addr)==0)
{
fprintf(stderr, "inet_aton () failed\n");
exit (1);
}
for(i=0; i< NPACK; i++)
{
printf("sending packet %d\n", i);
sprintf(buf, "This is
packet %d\n",i);
if (sendto(s, buf, BUFLEN, 0, &si_other,
slen) == -1)
{
diep("sendto()");
}
}
close(s);
return 0;
}
============================
_______________________________________________
Xenomai-help mailing list
[email protected]
https://mail.gna.org/listinfo/xenomai-help