Hallo.
Eine Frage zur Socketprogrammierung in C.
Ich habe einen Server laufen, der reichlich Daten empfängt. Wenn ich eine entsprechende Kennung in den Daten erkennt, sendet mein Server ein Telegramm an einen anderen Rechner. Das funktioniert auch gut. Seit einiger Zeit habe ich aber das Phänomen, dass die Zuweisung sockfd = accept(…) die sockfd nicht mehr konstant auf 5 steht, sondern mit jedem gesendeten Telegramm incrementiert wird. Ein shutdown und ein close der sockfd wird fehlerfrei erledigt. Ich habe auch in dem Programmbereich keine Änderungen gemacht. Daher die Frage wie kann das sein? Kriege ich Probleme durch das Inkrementieren?
Die Gegenstelle behauptet auch keine Änderungen gemacht zu haben…
Ich bin etwas verblüfft, weil die Antwort auf das Telegramm, die mein Server erhält komplett korrekt bearbeitet wird und ich die gleiche Routine benutze, um an ander Rechner Daten zu senden. Geht alles, nur bei diesem einen Server erfolgt plötzlich das Inkrement. Im Netz wurde ich nicht fündig. Die Beschreibungen der Programmierung stimmt fast auf den Punkt genau mit meinem Code überein. Rat wäre toll …
Hallo,
accept liefert einen Descriptor (Identifier) für eine connection,
der muss nicht konstant sein, kann aber.
wenn das auf einem System scheinbar immer 5 ist, dann passt das eben zum Systemzustand.
Nach meinem Verständnis ist also alles gut.
Hoffe alles ist gut
Leider kann ich da nicht helfen.
MfG
uwe