Problem mit Sockets
-
Guten morgen alle zusammen,
ich habe folgendes Problem. Ich habe ein Clientsocket, das in einer bestimmten Methode "scharf" geschaltet werden soll(nicht vorher) und dann Daten senden soll. Soweit so gut. Mein Problem ist jetzt. Wenn ich in der Methode das Socket auf active setze, wird zuerst noch die Methode abgearbeitet(welche ja schon Daten senden soll) und dann erst verbindet sich das Socket. Rufe ich die Methode ein 2tes mal auf klappt das Daten senden dann, da das Socket ja dann Activ ist. Kann ich das Problem irgendwie umgehen?
LG und einen schönen Wochenanfang
-
Das Problem ist wohl, dass sich die Socket asynchron verbindet und du nicht genau weisst, wann die Verbindung besteht.
Bau dir eine Queue, in der du die zu sendenden Informationen ablegst und arbeite diese Queue ab, sobald die Verbindung besteht. Einen Aufruf zur Abarbeitung der Queue könntest du dann in den Ereignishandler für das OnConnect Event der Socket legen.
Das Command Pattern eignet sich gut für solche Aufgaben.
-
Habe die Nachricht jetzt mal in ne Queue gepackt. Die OnConnecting Mehtode wir dann auch ausgeführt. Allerdings ist er dort noch immer nocht verbunden. Also kann ich auch hier wieder keine Nachrichten schicken
-
Hallo,
dann lager doch die "Sendeaufträge" in eine seperate Funktion aus und rufe diese erst auf wenn Clientsocket verbunden ist!
LG,Micha
-
Hallo
Und daran denken : OnConnecting != OnConnect
bis bald
akari
-
akari schrieb:
Hallo
Und daran denken : OnConnecting != OnConnect
bis bald
akariHm stimmt OnConnect wird garnicht aufgerufen. Immer erst beim 2ten mal
-
es geht jetzt