shadyz
14-01-2009, 20:07
Ciao a tutti. Ho creato un client che deve comunicare con un server su un altro computer.
Dopo aver mandato un primo messaggio al server, questo mi risponde, quindi tutto ok.
Se mando subito dopo un altro messaggio, il server non risponde più, quando invece quest'ultimo è impostato per rispondere.
la sintassi per ricevere è la stessa del primo messaggio ed è la seguente:
char buf2[1024];
int ric;
memset (&buf, 0x0, 1024);
ric = recv (sd, &buf2, sizeof(buf2), 0);
printf ("Ritorno messaggio\t: %s\n", buf2);
printf ("Valore messaggio\t: %i\n", ric_cvr);
Il messaggio mi ritorna una stringa vuota ed il valore di "ric" è 0, segno che non ho ricevuto nulla.
Ho provato anche a impostare il socket come non-bloccante, ma il risultato è lo stesso.
Mi chiedevo se la procedura fosse corretta, oppure se dopo aver fatto un primo send()-recv() bisognasse fare qualcosa prima di mandarne un altro.
Grazie.
Dopo aver mandato un primo messaggio al server, questo mi risponde, quindi tutto ok.
Se mando subito dopo un altro messaggio, il server non risponde più, quando invece quest'ultimo è impostato per rispondere.
la sintassi per ricevere è la stessa del primo messaggio ed è la seguente:
char buf2[1024];
int ric;
memset (&buf, 0x0, 1024);
ric = recv (sd, &buf2, sizeof(buf2), 0);
printf ("Ritorno messaggio\t: %s\n", buf2);
printf ("Valore messaggio\t: %i\n", ric_cvr);
Il messaggio mi ritorna una stringa vuota ed il valore di "ric" è 0, segno che non ho ricevuto nulla.
Ho provato anche a impostare il socket come non-bloccante, ma il risultato è lo stesso.
Mi chiedevo se la procedura fosse corretta, oppure se dopo aver fatto un primo send()-recv() bisognasse fare qualcosa prima di mandarne un altro.
Grazie.