jarno
06-03-2009, 12:44
Ciao a tutti,
ho creato un server e un client in C. La mia prima prova è quella di spedire dal client al server due interi e il server risponde al client con la somma dei due addendi. E tutto ciò funziona perfettamente.
Il mio prossimo quesito sarebbe quello di inviare al server una parola ("CIAO") e il server risponda al client con un altra parola("UH?") e una volta risposto chiuda il canale.
Ora posto solo il codice senza i collegamenti tra client e server, i quali sono funzionanti:
lato server:
static void add_server (int connfd)
{
char buf[MAXBUFL];
size_t n;
char a;
while ((n = Readline (connfd, buf, sizeof(buf)-1)) > 0)
{
char a;
buf[n] = '\0';
if (sscanf(buf,"%c",a) == "CIAO")
snprintf (buf, sizeof(buf), "HU?\r\n");
else
snprintf (buf, sizeof(buf), "Parola sbagliata\r\n", a);
Writen (connfd, buf, strlen(buf));
exit(0);
}
lato client:
static void add_client (int sockfd)
{
ssize_t n;
char buf[MAXBUFL+1];
char a;
while ( (n = Readline(0,buf,sizeof(buf))) > 0)
{
Writen (sockfd, buf, n);
if ( (n = Readline(sockfd,buf,sizeof(buf))) > 0)
Writen (1, buf, n);
else
err_quit("(%s) error - unexpected EOF from server", prog);
}
}
}
e quando compilo e lancio il tutto mi da questo errore:
error - unexpected EOF from server
Come potrei fare questo esercizio?
Dovrei inviare una parola e riceverne una di risposta.
Grazie in anticipo :)
ho creato un server e un client in C. La mia prima prova è quella di spedire dal client al server due interi e il server risponde al client con la somma dei due addendi. E tutto ciò funziona perfettamente.
Il mio prossimo quesito sarebbe quello di inviare al server una parola ("CIAO") e il server risponda al client con un altra parola("UH?") e una volta risposto chiuda il canale.
Ora posto solo il codice senza i collegamenti tra client e server, i quali sono funzionanti:
lato server:
static void add_server (int connfd)
{
char buf[MAXBUFL];
size_t n;
char a;
while ((n = Readline (connfd, buf, sizeof(buf)-1)) > 0)
{
char a;
buf[n] = '\0';
if (sscanf(buf,"%c",a) == "CIAO")
snprintf (buf, sizeof(buf), "HU?\r\n");
else
snprintf (buf, sizeof(buf), "Parola sbagliata\r\n", a);
Writen (connfd, buf, strlen(buf));
exit(0);
}
lato client:
static void add_client (int sockfd)
{
ssize_t n;
char buf[MAXBUFL+1];
char a;
while ( (n = Readline(0,buf,sizeof(buf))) > 0)
{
Writen (sockfd, buf, n);
if ( (n = Readline(sockfd,buf,sizeof(buf))) > 0)
Writen (1, buf, n);
else
err_quit("(%s) error - unexpected EOF from server", prog);
}
}
}
e quando compilo e lancio il tutto mi da questo errore:
error - unexpected EOF from server
Come potrei fare questo esercizio?
Dovrei inviare una parola e riceverne una di risposta.
Grazie in anticipo :)