R: [Pluto-help] Comunicazione di rete: Aiuto.
Losciale Roberto
RLosciale a Fideuramvita.it
Mar 19 Mar 2002 17:36:52 CET
Mi permetto di risponderti in privato.....
E' una questione di indirizzi in memoria.......
Ti evidenzio la parte che dovresti controllare.
E dove sta la LISTEN(SOCKET,NN)???????????
> // thread per la gestione dell' accept
> void *accept_thread(void*arg)
> {
> sockaddr_in from;
> int sockNum=(int)arg;
> int newSock;
CHAR HOST[20]; /*IO LA DEFINIREI QUI E
COSI'.......CHE NE DICI???*/
> unsigned int fromLen=sizeof(from);
MEMSET(HOST,0,SIZEOF(HOST));
> for(;;) // ciclo continuo per la gestione delle chiamate
> {
> if ( (newSock=::accept(sockNum,(struct sockaddr
> *)&from,&fromLen)) > 0 )
> {
> set_idconn(newSock); // salvo l'ID socket nel
> primo buffer
/*
> char*host=::inet_ntoa(from.sin_addr);
*/
HOST = INET_NTOA(FROM.SIN_ADDR);
/*IO NON FAREI COSI'..DEFINIREI UN BUFFER
CHAR HOST[20] MA NON QUI'
MA ALL'INIZIO DELLA ROUTINE...........TI
FACCIO NOTARE CHE TU IN QUESTO MODO
NON DEFINISCI NULLA.......MEGLIO BATTEZZI
SOLO UN PUNTATORE CHAR.......
ESSENDO UN PUNTATORE -) VEDI TU.......E
COMUNQUE STA NEL LOOP
EPPOI OGNI VOLTA CHE HAI ASSEGNATO L'IP
FAREI UNA MEMSET..
MEMSET(HOST,0,SIZEOF(HOST));
*/
> set_idhost(host); // salvo l'IP
> address nel secondo buffer
MEMSET(HOST,0,SIZEOF(HOST));
> }
> }
> pthread_exit((void*)0);
> }
>
> // array degli ID di connesione
> void set_idconn(int idconn)
> {
> for (int i=0;i<31;i++) // 32 è il numero massimo di connessioni che
> posso stabilire
> {
> if (i>31) throw;
> if (array_conn[i]==0)
> {
> array_conn[i]=idconn;
> break;
> }
> }
> }
>
> // array degli IP address
> void set_idhost(char* host)
> {
> for (int i=0;i<31;i++)
> {
> if (i>31) throw;
> if (array_host[i]==0)
> {
> array_host[i]=host;
> break;
> }
> }
> }
>
>
>
> _______________________________________________
> pluto-help mailing list
> pluto-help a lists.pluto.linux.it
> http://lists.pluto.linux.it/mailman/listinfo/pluto-help
More information about the pluto-help
mailing list