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;
}
============================



      
------------------------------------------------------------------------------
The ultimate all-in-one performance toolkit: Intel(R) Parallel Studio XE:
Pinpoint memory and threading errors before they happen.
Find and fix more than 250 security defects in the development cycle.
Locate bottlenecks in serial and parallel code that limit performance.
http://p.sf.net/sfu/intel-dev2devfeb
_______________________________________________
RTnet-users mailing list
RTnet-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/rtnet-users

Reply via email to