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

Reply via email to