socket read deadlock bei Verbindungsabbruch



  • Hallo,

    Ich hab momentan folgendes Problem:
    Ich schreibe einen Server in C und wenn ich die Netzwerkverbindung trenne, also von Hand das Netzwerkkabel ziehe, bleibt das Programm stehen. Das printf wird nicht ausgegeben.
    Es handelt sich um ganz normale TCP-Sockets.

    while(read(client, &buffer, 1) > 0){
      // Do something
    }
    printf("Ende\n");
    

    Kann man das Problem irgendwie umgehen?



  • weil solange gewartet wird bis der read-timeout abgelaufen ist

    dürfte nur 30sekunden laufen oder?

    du kannst mit select dir einen kürzeren Timeout festlegen zB


Anmelden zum Antworten