Ich versuche, eine Client-Server-Anwendung mit Multi-Clients mithilfe von Threads zu implementieren. Nur zu versuchen, möchte ich die Nachrichten von jedem Client drucken, aber wenn ich Nachrichten von einem Client sende, druckt der Server nichts.Multiclient-Server-Socket druckt die Client-Nachrichten nicht
Server (Thread-Code)
void comunicationHandler(void *socket)
{
int sock = *(int*) socket;
char msg[2000];
while ((strcmp(msg, "!quit")) != 0) {
if (recv(sock, msg, 2000, 0) < 0)
puts("Error recv");
printf("%s", msg);
}
puts("Client Disconnected\n");
}
wenn ich sende! "Beenden", geht der Server in einer Endlosschleife Druck die Nachrichten
Kunde
for(;;) {
printf("\nInserisci il msg: ");
scanf("%s", msg);
if (strcmp(msg, "!quit") == 0)
break;
write(sd, msg, 2000);
}
Probieren Sie printf ("% s \ n", msg); Stattdessen ... stdout wird seinen Puffer nicht löschen, bis er auf eine neue Zeile trifft. –
Sie sollten in [richtige C-Formatierung] (// prohackr112.tk/r/proper-c-formatting) schauen. Oder lerne, wie du deinen Code gründlich verschleiern kannst (// prohackr112.tk/r/proper-c-obfuscation). –
"* wenn ich sende"! Quit ", *" nicht ", sondern" aus der 'for'-Schleife ausbrechen. – alk