[gelöst] lesen zwischen server/client Anwendung von fgets() nach read() geändert

Post Reply
Message
Author
pcAlko
Posts: 70
Joined: 14. May 2007 19:27

[gelöst] lesen zwischen server/client Anwendung von fgets() nach read() geändert

#1 Post by pcAlko »

Hallo Community!

Ich habe meine Server/Client Anwendung von fgets()/fputs() auf read/write geändert
der Grund dafür war eigentlich das ich im Web gelesen habe das fgets und fputs eher kontra produktiv wären, da diese funktionen einen Cash verwenden.

Schön und gut ...
hab jetzt aber das Problem dass der Server nicht mehr mitbekommt wenn der Client unverhofft abbricht.
bei fgets hats noch funktioniert (konnte auf eof() prüfen)

bei meinen Internet Recherchen
hab ich gelesen dass ich mit setsockopt SO_KEEPALIVE
mit TCP_KEEPIDLE, TCP_KEEPCNT und TCP_KEEPINTVL setzen soll

damit hatte ich aber keinen Erfolg
was macht jetzt fgets besser?
oder soll ich meine Anwendung jetzt wieder zurück portieren?
was meint Ihr?

Ich habe hier immer die besten Antworten bekommen.
Hoffe dieses Forum lebt noch :roll:

Danke im Voraus
für Eure Antworten
8) pcAlko
Last edited by pcAlko on 18. Apr 2015 11:40, edited 1 time in total.

User avatar
Janka
Posts: 3585
Joined: 11. Feb 2006 19:10

#2 Post by Janka »

Wenn du vom Client liest und null Bytes zurückbekommst, heißt das, dass die Verbindung weg ist. Hat der Client hingegen einfach nur keine neuen Daten, blockiert entweder der read()-Aufruf oder du bekommst -1 zurück und errno liefert EAGAIN.

Janka
Ich vertonne Spam immer in /dev/dsp statt /dev/null.
Ich mag die Schreie.

pcAlko
Posts: 70
Joined: 14. May 2007 19:27

#3 Post by pcAlko »

UPS -> ja, das war mein Denkfehler :oops:

dachte wenn 0 zurückkommt, kommt halt noch später was :D

Danke, Janka
8) pcAlko

Post Reply