Hi Jan,

I have put the line "mlockall(MCL_CURRENT|MCL_FUTURE)" into my code
at line (***1***) and (***2***).

in both case the result is the same:
there is a initial delay

code:

int main(int argc, char *argv[])
{
 (***1***)
RT_TASK *task_rt;              //lpx: task real time

 int udpSocket;                 //lpx: Socket UDP

 int nFamily=AF_INET;           //lpx: protocollo di rete: IP
 int nType=SOCK_DGRAM;          //lpx: protocollo di trasporto: UDP
 int nProtocol = 0;             //lpx: ???

 int nAddr=INADDR_ANY;          //lpx: Questo indirizzo
 int nPort=15000;           //lpx: porta

 // indirizzo interno
 struct sockaddr_in MyAdrs;                     //lpx: indirizzo IP
 memset( &MyAdrs, 0, sizeof( MyAdrs ) );        //lpx: azzero variabile
 // primo Socket
 MyAdrs.sin_family = nFamily;                   //lpx: tipo di indirizzo
 MyAdrs.sin_addr.s_addr = htonl( nAddr );       //lpx: indirizzo IP host
 MyAdrs.sin_port = htons( nPort );              //lpx: porta su cui collegarsi


 // indirizzi degli slave a cui mi devo connettere
 char slaveAddress[16] = "192.0.0.255";
 int    slavePort=6000;

 // l'inirizzo a cui invierò sarà di tipo broadcast
 struct sockaddr_in slaveAdrs;  //indirizzo del server che si vuole connettere
 int len;                                       //dimensione della
struttura masterAdrs
 // i valori li otterro dal primo mesaggio che mi giunge
 memset(&slaveAdrs, 0, sizeof( slaveAdrs ) );           //lpx: azzero variabile
 // socket verso il primo slave S1
 slaveAdrs.sin_family = nFamily;                        //lpx: tipo di indirizzo
 slaveAdrs.sin_addr.s_addr = inet_addr(slaveAddress);   //lpx: indirizzo IP host
 slaveAdrs.sin_port = htons(slavePort);         //lpx: porta su cui collegarsi


 const int BufferLen=256;                               //lpx:
lunghezza buffer di ricezione
 char Buffer[BufferLen];                // lpx: punta ai dati da trasmettere
 char BufferRx[BufferLen];                              //lpx: buffer
di ricezione

 for (int j=1; j<BufferLen; j++)
 {// il Buffer[0] lo uso per inserire il numero di datagram
        Buffer[j]=j;
 }

 int flags=0;  // lpx: vedi info sendoto() o recvfrom()
 int a,i; // a: ritorno errore , i indice


 int add_rtskbs=100; //numero di buffer in più da allocare per il socket
 int new_rtskbs;    //contiene la quantità dei nuovi buffer realmente allocata
  //nice(-15);

 (***2***)

 // creo i socket
 udpSocket = socket_rt( nFamily, nType, nProtocol);
 if (udpSocket<0)
 {
        printf("errore Socket non creato %d!\n",udpSocket);
        //devo rimuovere i socket precedentemente creati
        close_rt(udpSocket);    //chiudo il socket
 .....


do you have any ideas?


thanks!


-------------------------------------------------------
This SF.Net email is sponsored by the JBoss Inc.  Get Certified Today
Register for a JBoss Training Course.  Free Certification Exam
for All Training Attendees Through End of 2005. For more info visit:
http://ads.osdn.com/?ad_idv28&alloc_id845&op=click
_______________________________________________
RTnet-users mailing list
RTnet-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/rtnet-users

Reply via email to