kemistry
19-07-2008, 13:39
Se ho una lista lineare di n elementi come faccio ad inviarla e a riceverla?
faccio così
send (client,&Start,4*sizeof(struct servizi),0);
dove client è il socket,Start è il puntatore alla testa della lista e struct servizi è così costituita:
struct servizi {
char testo[35];
char testo2[17];
char testo3[30];
struct servizi *next;
};
naturalmente l'ultimo elemento della lista è null e nella lista sono presenti 4 elementi escluso l'ultimo a null.
per la ricezione,inizializzo una struttura a null e anche lì ho un puntatore Start all'inizio della lista:
Start=(struct servizi *)malloc(4*sizeof(struct servizi));
recv(sockfd,&Start,4*sizeof(struct servizi),0);
La quantità di byte che invia e riceve è naturalmente uguale,ma sto davvero inviando la lista lineare??
perchè quando vado a stampare la lista nel client non mi stampa niente.
Come fare?
faccio così
send (client,&Start,4*sizeof(struct servizi),0);
dove client è il socket,Start è il puntatore alla testa della lista e struct servizi è così costituita:
struct servizi {
char testo[35];
char testo2[17];
char testo3[30];
struct servizi *next;
};
naturalmente l'ultimo elemento della lista è null e nella lista sono presenti 4 elementi escluso l'ultimo a null.
per la ricezione,inizializzo una struttura a null e anche lì ho un puntatore Start all'inizio della lista:
Start=(struct servizi *)malloc(4*sizeof(struct servizi));
recv(sockfd,&Start,4*sizeof(struct servizi),0);
La quantità di byte che invia e riceve è naturalmente uguale,ma sto davvero inviando la lista lineare??
perchè quando vado a stampare la lista nel client non mi stampa niente.
Come fare?