Hallo!
Vielen Dank für die Antworten.
Ich habe gerade den Vorschlag mit recv und -1 ausprobiert.
Mein Code sieht gerade ungefähr so aus:
Code:
while (true)
{
bool connected; // Hier wird der Connect Status gespeichert
if ( (client_socket = accept (server_socket, NULL, 0) ) == -1) // Server akzeptiert Verbindungen
return -1;
connected = true;
char recv_buffer[1024]; // Buffer für empfangene Daten
int received; // Länge der empfangenen Daten
while (connected)
{
if ( (received = recv (client_socket, recv_buffer, sizeof(recv_buffer)-1, 0) ) == -1) // Hier werden die daten empfangen
{
connected = false; // Falls -1 zurückgeliefert wird, wird Status auf Disconnected
break; // gesetzt und while Schleife durch break; unterbrochen
}
recv_buffer[received] = '\0';
handle_buffer (recv_buffer); // Funktion, die die empfangenen Daten auswertet
}
}
Allerdings funktioniert das auch nicht.
Wenn ich mit NetCat connecte und durch STRG-C wieder die Verbindung beende, geht er aus der "while (connected)" Schleife nicht raus, sondern
bleibt in der Schleife drin.
Da er aber nix mehr empfangen kann, steigt die CPU Auslastung auf 100% an
Lesezeichen