Hey,
Ich möchte gern meine tcp clients/sockets wiederverwenden, das funktioniert soweit gut, mein bisheriges konzept:
Soweit sogut, nun hab ich das Problem, dass die clients austimen können, das machen sie nicht von selber, sondern ich muss da einen timestamp anhängen.
Das problem ist, dass ich die clients nicht disconnecten kann ohne den socket unbrauchbar zu machen.
Zur zeit mach ich folgendes:
#EDIT: Kleine info am rande: Wenn ich endconnect aufrufe kommt diese fehlermeldung: "Es konnte keine Verbindung hergestellt werden, da der Zielcomputer die Verbindung verweigerte "
"Hat den Nachteil, dass da neue sockets erstellt werden und die alten noch lange offen bleiben, selbst nach dem Close.
Ich hoffe ich habe das annähernd verständlich ausgedrückt
Weis da jemand wie ich mein Problem lösen könnte?
*Topic verschoben*
Ich möchte gern meine tcp clients/sockets wiederverwenden, das funktioniert soweit gut, mein bisheriges konzept:
- Erstelle eine concurent bag(avaiabletouse)
- hau xx neue tcp clients rein
- holen per TryTake, in eine temporäre Liste
- Asyncrones starten des connectens via client.BeginConnect
- sobald connected aus Liste removen, in neue concurent bag(connectet_towork)
- nachdem der tcpjob erledigt wurde darf ich den "NetworkStream" nicht beenden, da sonst der tcp client disposed wird, genau sowenig darf ich den client per "close schließen"(kommt aufs selbe raus), aus den gründen verwende ich hier ".client.Client.Disconnect(true)"
- danach wird der tcpclient wieder in die avaiabletouse bag geschmissen.
Soweit sogut, nun hab ich das Problem, dass die clients austimen können, das machen sie nicht von selber, sondern ich muss da einen timestamp anhängen.
Das problem ist, dass ich die clients nicht disconnecten kann ohne den socket unbrauchbar zu machen.
Zur zeit mach ich folgendes:
#EDIT: Kleine info am rande: Wenn ich endconnect aufrufe kommt diese fehlermeldung: "Es konnte keine Verbindung hergestellt werden, da der Zielcomputer die Verbindung verweigerte "
"Hat den Nachteil, dass da neue sockets erstellt werden und die alten noch lange offen bleiben, selbst nach dem Close.
Ich hoffe ich habe das annähernd verständlich ausgedrückt
Weis da jemand wie ich mein Problem lösen könnte?
*Topic verschoben*
Wer Rechtschreibfehler findet darf sie behalten
Dieser Beitrag wurde bereits 4 mal editiert, zuletzt von „Marcus Gräfe“ ()