TCP/IP & BSD Sockets

N

nxthor

Neues Mitglied
Thread Starter
Dabei seit
05.09.2005
Beiträge
7
Reaktionspunkte
0
Hi!

Ich habe ein TCP/IP Server mit Xcode geschrieben, den ich u.a. auch per telnet ansprechen kann... (eigener Client kommt erst noch)

Problem ist aber, das das Server-Programm abschmiert, wenn ich die Console kill, auf der telnet läuft. Mein Server soll aber das nicht tun :(. daher dachte ich mir, ob man da nicht timeouts verwenden sollte, und google brachte mich auf select(). Leider sind alle Erklährungen die ich bisher zum Thema fand, nicht für die BSD sockets unter c++ gedacht, und meine Sockets auf objC umstellen wollte ich auch nicht mehr. Ich brauche nur eine möglichkeit, meinem Befehl
read(i_socket, MESSAGE, sizeof(MESSAGE) - 1);
einen timeout zu geben, das würde auch gleich ein anderes Problem lösen (Der Thread merkt zwischendurch, das er von außen abgestellt werden soll --> Schleifenparameter)
Vorschläge und Workarounds immer zu mir :) - evtl stehe ich auch nur vor dem Wald und suche Bäume :rolleyes: ...

Danke schon mal,
NX
 
bei mir war das immer so: wenn ein client geht/stirbt kommt auf das readv eine nachricht mit übertragnene bytes (also rückgabewert): -1

also könntest du einfach auf -1 prüfen und sonst thread killen
 
Zurück
Oben Unten