Ich habe einen Client entwickelt, der eine Verbindung zu einem Server herstellt. Der Client schreibt etwas auf den Server und der Server liest und antwortet dem Client. Der Client liest dann, was der Server sagte und beide beenden. Ich möchte dies erweitern und es dem Client und dem Server erlauben, weitere 3 Mal zu sprechen und dann zu beenden. Ich habe eine for-Schleife erzeugt, in der ich den Code gelesen und geschrieben habe, sowohl auf dem Server als auch auf dem Client, aber er endet in einer Endlosschleife und schreibt den Text, der beim ersten Mal eingegeben wurde, anstatt den Benutzer dazu aufzufordern neue Daten eingebenServer/Client-Nachricht in C übergeben
Der Server-Code, wo die Lese-/Schreib behandelt wird, ist wie folgt:
int temp = 0;
char cha [10] = "helloworld";
while(temp = 3){
int rc;
char ch[100];
rc = read(newsockfd, &ch, 100);
printf("Client sent: %s\n", ch) ;
write(newsockfd, cha + temp, 100);
temp ++;
}
close(sockfd);
close(newsockfd);
Dies ist der Client-Code ist in dem Lese-/Schreib behandelt wird:
int temp = 0;
char cha[10] = "abcdefhijk";
while(temp = 3)
{
int rc;
char ch2 [100];
rc = write(sockfd, cha + temp, 100);
read(sockfd, &ch2, 100);
printf("Server said: %s\n", ch2);
temp ++;
}
sleep(2);
close(sockfd);
Auch ich das bin Schließen Dateideskriptoren, nachdem die Schleife abgeschlossen ist.
Jede Hilfe ist sehr
geschätzt
'while (temp = 3)' sieht aus wie ein Tippfehler. Vorschlag: Verwenden Sie eine for() -Schleife. – wildplasser