forse la mia domanda non è proprio specifica della programmazione delle reti, ma piuttosto di linguaggio C, però ritengo sia importante capire l'ambito in cui deve essere applicato il controllo.
Riporto qui di seguito il file di un Client che si collega ad un Server e riceve sul socket una stringa "Hello World".
Ora devo modificare il file in modo che dopo aver ricevuto la stringa deve rispondere con la stringa "Grazie" ovvero i due host si devono sincronizzare.#include "basic.h"
main(int argc, char *argv[])
{
int sockfd,n;
struct sockaddr_in servaddr;
char buff[MAXLINE];
if(argc!=2)
err_quit("Usage: %s <IP address>\n",argv[0]);
if ( (sockfd = socket(AF_INET, SOCK_STREAM,0)) < 0 )
err_sys("socket error");
servaddr.sin_family = AF_INET;
servaddr.sin_addr.s_addr=inet_addr(argv[1]);
servaddr.sin_port = htons(SERV_PORT);
if(connect(sockfd, (struct sockaddr *) &servaddr, sizeof(servaddr)) <0)
err_sys("connect error");
while ( (n = read(sockfd, buff, MAXLINE)) > 0 ) {
buff[n] = 0;
if (fputs(buff, stdout) == EOF)
err_sys("errore in fputs");
}
if (n < 0)
printf("errore in read");
exit(0);
}
Vorrei sapere come faccio a controllare l'ultimo carattere che sta nel socket visto che alla fine di "Hello World" aggiungo un carattere di controllo "\n". Non vorrei utilizzare la readln al posto del while per rendere più generico il controllo, ma vorrei solo isolare l'ultimo carattere del socket.
Grazie.