www.ClickEXE.de Click.EXE - In 5 Minuten zum eigenen Programm!
Start Einloggen Einloggen Die Mitglieder Das Foren-Team Suchfunktion
30785 Posts & 5479 Themen in 34 Foren
Benutzername/Passwort:
  Login speichern
Forenübersicht » Click.EXE - Die Plugins » Netzwerk-Plugin » ::Netzwerk_Verbunden

vorheriges Thema   nächstes Thema
15 Posts in diesem Thema (offen)
Seiten (1): (1)
Autor
Beitrag
wolle ist offline wolle  
::Netzwerk_Verbunden
1093 Beiträge - click.EXE - Guru
Hi,

wenn ich so:

Netzwerk Verbinden (Client) (ID: [aktueller_index], IP-Adresse/Host '[pc_ip]', Port '[ip_port]', Warten auf Ergebnis für 1 Sekunden)

eine Verbindung aufbaue, dann steht schön brav eine "1" in [Netzwerk.Erfolg]. Genau das was ich erwarte, wenn auf der Gegenseite einer lauscht. Aber jetzt müsste doch das hier

:: Netzwerk_Verbunden
Meldung ID:[Netzwerk.ID] (Titel: 'Info', 'OK, Abbrechen')
Zurück

ausgeführt werden ? Aber dem ist nicht so. Was mache ich falsch ?

Grüsse Wolle
Beitrag vom 20.05.2005 - 17:39
Diesen Beitrag melden   nach weiteren Posts von wolle suchen wolle`s Profil ansehen wolle eine Kurznachricht senden wolle`s Homepage besuchen wolle zu deinen Freunden hinzufügen zum Anfang der Seite
MountyMAX ist offline MountyMAX  
Admin/click.EXE Team
942 Beiträge - click.EXE - Fastguru
MountyMAX`s alternatives Ego
Serverseitig wird das Ereignis "Netzwerk_Verbindung" ausgelöst =)
Beitrag vom 20.05.2005 - 20:46
Diesen Beitrag melden   nach weiteren Posts von MountyMAX suchen MountyMAX`s Profil ansehen MountyMAX eine E-Mail senden MountyMAX eine Kurznachricht senden MountyMAX`s Homepage besuchen MountyMAX zu deinen Freunden hinzufügen zum Anfang der Seite
wolle ist offline wolle  
1093 Beiträge - click.EXE - Guru
Ja das dachte ich mir schon, nur leider passiert da trotzdem nix. Laut "netstat -a" ist auch eine TCP Verbindung hergestelllt. Ich kann auch Texte versenden, nur das was in Netzwerk_Verbunden steht wird partout nicht ausgeführt.
Ich will ja nicht ausschliessen, dass ich da nen Fehler mache, zumal ich die Geschichte mit den NetzwerkIDs nicht ganz kapiert habe. Aber das dürfte im momentanen Stadium des Programms noch irrelevant sein, da es sich nur um eine einzige Verbindung handelt.
Beitrag vom 20.05.2005 - 21:29
Diesen Beitrag melden   nach weiteren Posts von wolle suchen wolle`s Profil ansehen wolle eine Kurznachricht senden wolle`s Homepage besuchen wolle zu deinen Freunden hinzufügen zum Anfang der Seite
wolle ist offline wolle  
1093 Beiträge - click.EXE - Guru
Leider komme ich hier immer noch nicht weiter. Hat jemand ne Idee, wie ich das debuggen kann, dass die Marke "Netzwerk_Verbindung" vermutlich nicht angesprungen wird ?
Beitrag vom 23.05.2005 - 14:59
Diesen Beitrag melden   nach weiteren Posts von wolle suchen wolle`s Profil ansehen wolle eine Kurznachricht senden wolle`s Homepage besuchen wolle zu deinen Freunden hinzufügen zum Anfang der Seite
Luke ist offline Luke  
869 Beiträge - click.EXE - Fastguru
Luke`s alternatives Ego
Hallo Wolle, ...

einige Netzwerk-Sprungmarken sind nur bei einer asynchronen Übertragung relevant, so auch ::Netzwerk_Verbunden.

Man muss eine klare Unterscheidung zwischen einer synchronen und einer asynchronen Kommunikation machen.

In Deinem Beispiel wartest Du 1 Sekunde auf ein Ergebnis. D.h. dass Du nach einer maximalen Wartezeit von 1 Sekunde bereits ein Ergebnis für Erfolg bzw. Misserfolg erhältst.
Dies entspricht einer synchronen Kommunikation !!!

Somit wird die Sprungmarke ::Netzwerk-Verbunden nicht benötigt und dementsprechend auch nicht angesprungen.

Wenn Du jedoch eine Verbindung asynchron aufbaust (also ohne 'Erfolgswartezeit'), dann hast Du ja nach Aufruf des 'Netzwerk'-Befehls noch keine Bestätigung, ob die Verbindung zustande gekommen ist oder nicht.

Eine solche Bestätigung dass eine Verbindung zustande gekommen ist, erhältst Du in diesem Fall über die Sprungmarke ::Netzwerk_Verbunden.
Denn nur wenn der angefragte Server auch die Verbindung akzeptiert hat und die Verbindung hergestellt wurde, wird diese Sprungmarke aufgerufen.

Demo-Skripte mit asynchroner Kommunikation anbei:

Server-Skript
(als erstes starten):
**cX2021D975 FEEEMzkJSWNo IGJpbiBkZXIg U2VydmVyIC4u LnxUVyc5NCw1 J0gnNTMsNSdY JzMwJ0MJMA0K MzgJQmV6ZWlj aG5lcjF8SSdC ZXplaWNobmVy MSdYJzEnWScx LDUnVyc5MCdI JzQnTAkwDQoz OAl8SSdMaXN0 ZSdYJzEnWSc2 J1cnLTEnSCct MSdUT01TCTAN CjQ0CVN0YXR1 c3x8SVMJMA0K NjMJRCcxJ0kn W05ldHp3ZXJr Lkxva2FsZUlQ XSdQJzIyMjIn TAkwDQozMQlF CTANCjAJCTAN CjE5CVN0YXR1 cwkwDQoyMgku RWxlbWVudCBC ZXplaWNobmVy MT1OZXR6d2Vy ay1TdGF0dXMg OiBbTmV0endl cmsuU3RhdHVz XSAtIFtOZXR6 d2Vyay5TdGF0 dXNUZXh0XXwJ MA0KNDUJCTAN CjAJCTANCjE5 CU5ldHp3ZXJr X0VtcGZhbmcJ MA0KMjIJLkVs ZW1lbnQgTGlz dGU9W1plaXRd IC0gTmV0endl cmtfRW1wZmFu ZzogW05ldHp3 ZXJrLkVtcGZh bmdzVGV4dF22 Wy5FbGVtZW50 IExpc3RlXXwJ MA0KNjMJRCdb TmV0endlcmsu SURdJ1NUJ0lj aCBiaW4gZGVy IFNlcnZlciAh ISEnCTANCjQ1 CQkwDQoxOQlO ZXR6d2Vya19W ZXJiaW5kdW5n CTANCjIyCS5F bGVtZW50IExp c3RlPVtaZWl0 XSAtIE5ldHp3 ZXJrX1ZlcmJp bmR1bme2Wy5F bGVtZW50IExp c3RlXXwJMA0K NDUJCTANCjE5 CU5ldHp3ZXJr X0ZlaGxlcgkw DQoyMgkuRWxl bWVudCBMaXN0 ZT1bWmVpdF0g LSBOZXR6d2Vy a19GZWhsZXK2 Wy5FbGVtZW50 IExpc3RlXXwJ MA0KNDUJCTAN CjE5CU5ldHp3 ZXJrX0dlc2Vu ZGV0CTANCjIy CS5FbGVtZW50 IExpc3RlPVta ZWl0XSAtIE5l dHp3ZXJrX0dl c2VuZGV0tlsu RWxlbWVudCBM aXN0ZV18CTAN CjQ1CQkwDQox OQlOZXR6d2Vy a19HZXRyZW5u dAkwDQoyMgku RWxlbWVudCBM aXN0ZT1bWmVp dF0gLSBOZXR6 d2Vya19HZXRy ZW5udLZbLkVs ZW1lbnQgTGlz dGVdfAkwDQo0 NQkJMA0KMTkJ TmV0endlcmtf U2VuZGVuTOR1 ZnQJMA0KMjIJ LkVsZW1lbnQg TGlzdGU9W1pl aXRdIC0gTmV0 endlcmtfU2Vu ZGVuTOR1ZnS2 Wy5FbGVtZW50 IExpc3RlXXwJ MA0KNDUJCTAN CjE5CU5ldHp3 ZXJrX1ZlcmJ1 bmRlbgkwDQoy MgkuRWxlbWVu dCBMaXN0ZT1b WmVpdF0gLSBO ZXR6d2Vya19W ZXJidW5kZW62 Wy5FbGVtZW50 IExpc3RlXXwJ MA0KNDUJCTAN Cg===*

Erstellt mit cX3 WebExport (33 Skriptzeilen, cX 3.0.37).

Client-Skript (nach dem Server in einer separate Editor-Instanz starten)
**cX20374043 4F79MzkJVW5k IGljaCBiaW4g ZGVyIENsaWVu dCAhISEgICA7 byl8RydIYXVw dGZlbnN0ZXIn Vyc3OCdIJzUz J1gnMTMwJ0NF CTANCjM4CUJl emVpY2huZXIx fEknQmV6ZWlj aG5lcjEnWCcx J1knOCdXJy0s NSdIJzQnTAkw DQozOAlDb25u ZWN0fEknQnV0 dG9uMSdYJzAs NSdZJyw1J1cn MjUnSCc1LDUn CTANCjM4CURp c2Nvbm5lY3R8 SSdCdXR0b24y J1gnMjYsNSdZ Jyw1J1cnMjUn SCc1LDUnQQkw DQozOAlTZW5k fEknQnV0dG9u MydYJzUyLDUn WScsNSdXJzI1 J0gnNSw1J0EJ MA0KMzgJfEkn TGlzdGUnWCcx J1knMTMnVyct MSdIJy0xJ1RP TVMJMA0KNDQJ U3RhdHVzfHxJ UwkwDQozMQlF CTANCjAJCTAN CjE5CUFuemVp Z2VfRWxlbWVu dF9CdXR0b24x CTANCjEJVmVy YmluZHVuZyBh bmZyYWdlbiAo YXN5bmNocm9u KQkwDQo2MwlE JzInSSdbTmV0 endlcmsuTG9r YWxlSVBdJ1An MjIyMidPCTAN CjQ1CQkwDQow CQkwDQoxOQlB bnplaWdlX0Vs ZW1lbnRfQnV0 dG9uMgkwDQo2 MwlEJzInTScx J0MJMA0KMjkJ W05ldHp3ZXJr LkVyZm9sZ109 MXwJMA0KMjIJ LkVsZW1lbnQu QWt0aXYgQnV0 dG9uMT0xfAkw DQoyMgkuRWxl bWVudC5Ba3Rp diBCdXR0b24y PTB8CTANCjIy CS5FbGVtZW50 LkFrdGl2IEJ1 dHRvbjM9MHwJ MA0KMTgJCTAN CjQ1CQkwDQox OQlBbnplaWdl X0VsZW1lbnRf QnV0dG9uMwkw DQoxCU5hY2hy aWNodCBzZW5k ZW4gKGFzeW5j aHJvbikJMA0K NjMJRCcyJ1NU J1dlciBiaXN0 IER1PyAtIFtU aWNrc10nCTAN CjQ1CQkwDQow CQkwDQoxOQlT dGF0dXMJMA0K MjIJLkVsZW1l bnQgQmV6ZWlj aG5lcjE9TmV0 endlcmstU3Rh dHVzOiBbTmV0 endlcmsuU3Rh dHVzXSAtIFtO ZXR6d2Vyay5T dGF0dXNUZXh0 XXwJMA0KNDUJ CTANCjAJCTAN CjE5CU5ldHp3 ZXJrX0VtcGZh bmcJMA0KMjIJ LkVsZW1lbnQg TGlzdGU9W1pl aXRdIC0gTmV0 endlcmtfRW1w ZmFuZzogW05l dHp3ZXJrLkVt cGZhbmdzVGV4 dF22Wy5FbGVt ZW50IExpc3Rl XXwJMA0KNDUJ CTANCjE5CU5l dHp3ZXJrX1Zl cmJpbmR1bmcJ MA0KMjIJLkVs ZW1lbnQgTGlz dGU9W1plaXRd IC0gTmV0endl cmtfVmVyYmlu ZHVuZ7ZbLkVs ZW1lbnQgTGlz dGVdfAkwDQo0 NQkJMA0KMTkJ TmV0endlcmtf RmVobGVyCTAN CjIyCS5FbGVt ZW50IExpc3Rl PVtaZWl0XSAt IE5ldHp3ZXJr X0ZlaGxlcrZb LkVsZW1lbnQg TGlzdGVdfAkw DQo0NQkJMA0K MTkJTmV0endl cmtfR2VzZW5k ZXQJMA0KMjIJ LkVsZW1lbnQg TGlzdGU9W1pl aXRdIC0gTmV0 endlcmtfR2Vz ZW5kZXS2Wy5F bGVtZW50IExp c3RlXXwJMA0K NDUJCTANCjE5 CU5ldHp3ZXJr X0dldHJlbm50 CTANCjIyCS5F bGVtZW50IExp c3RlPVtaZWl0 XSAtIE5ldHp3 ZXJrX0dldHJl bm50tlsuRWxl bWVudCBMaXN0 ZV18CTANCjQ1 CQkwDQoxOQlO ZXR6d2Vya19T ZW5kZW5M5HVm dAkwDQoyMgku RWxlbWVudCBM aXN0ZT1bWmVp dF0gLSBOZXR6 d2Vya19TZW5k ZW5M5HVmdLZb LkVsZW1lbnQg TGlzdGVdfAkw DQo0NQkJMA0K MTkJTmV0endl cmtfVmVyYnVu ZGVuCTANCjIy CS5FbGVtZW50 IExpc3RlPVta ZWl0XSAtIE5l dHp3ZXJrX1Zl cmJ1bmRlbrZb LkVsZW1lbnQg TGlzdGVdfAkw DQoyMgkuRWxl bWVudC5Ba3Rp diBCdXR0b24x PTB8CTANCjIy CS5FbGVtZW50 LkFrdGl2IEJ1 dHRvbjI9MXwJ MA0KMjIJLkVs ZW1lbnQuQWt0 aXYgQnV0dG9u Mz0xfAkwDQo0 NQkJMA0K=*

Erstellt mit cX3 WebExport (55 Skriptzeilen, cX 3.0.37).

Kleine Anmerkung:
Das ursprünglich oben gepostete Client-Skript hatte einen kleinen Fehler. Dieser wurde in dem neuen, oben stehenden Skript behoben.
Bemerkungen in diesem Thread, die sich also auf ein Problem mit dem Client-Skript beziehen, sind also somit hinfällig und können ignoriert werden.


Gruß, Luke.


Der Post wurde 2 mal editiert, zuletzt von Luke am 29.05.2005 - 12:34.
Beitrag vom 23.05.2005 - 19:34
Diesen Beitrag melden   nach weiteren Posts von Luke suchen Luke`s Profil ansehen Luke eine Kurznachricht senden Luke zu deinen Freunden hinzufügen zum Anfang der Seite
wolle ist offline wolle  
Langsam kehrt etwas Licht ins Dunkel
1093 Beiträge - click.EXE - Guru
Hi Luke,

zuerst mal Happy Birthday to You !

Echt spitze, was du mir da so zusammen geklickt hast. Das wär unbedingt was für die Demoscripts und auch auch was für die Hilfe/Handbuch.

So zuerstmal war es wichtig für mich zu wissen, dass es die synchrone und asynchrone Verbindung gibt. Es wird zwar in der Hilfe bei der Erfolgswartezeit kurz erwähnt, aber da liest man schnell darüber weg.

D.h. im Klartext, dass wenn ich eine Verbindung synchron aufbaue, dass ich von dem aufbauenden PC1 (also Client) ausgehen kann, dass ich mich auf "Netzwerk.Erfolg" verlassen kann und die Verbindung nicht selbst quittieren muss, indem ich z.B. einen Datensatz vom PC2 (Server)zurückschicke !
Andersherum muss ich bei einer asynchronen Verbindung immer was zurückschicken, so dass ich weiss, dass der andere da ist und mich verstanden hat.

Wenn wir jetzt schon bei den Basics sind. Bezüglich der Netzwerk.ID ist mir auch noch einiges nicht klar. Es steht in der Hilfe was von, dass die ID 0 im Serverbetrieb eine besondere Bedeutung hat. Also folgendes habe ich bisher herausinterpretiert:
Im Serverbetrieb (horchen) wird die ID 0 verwendet. Bei nun eingehenden Verbindungen finde ich in ::Netzwerk_Verbunden die ID zu jeder neuen Verbindung. Jetzt stellt sich mir aber die Frage, was für ne ID muss ich angeben, wenn der Server jetzt auch was sendet und somit gleichzeitig zum Client wird ?

Jetzt zu deinen Scripten. Ich habe beide auf dem selben PC gestartet. Zuerst den Server und dann den Client.
* Server hat Netzwerkstatus 2 - Lauscht
* Client hat Netzwerkstatus 0 - Geschlossen
* Ich klicke auf Connect
* Beide zeigen Netzwerkstatus 7 - Verbindung aufgebaut an
* Server zeigt Netzwerk_Verbindung an
* Client zeigt Netzwerk_Verbunden an
* Button Connect ist immer noch aktiv und Disconnect und Send sind inaktiv
* Bei weiterem Klick auf Connect wird die Verbindung getrennt und gleich wieder aufgebaut die Buttons verändern sich aber irgendwie nicht.

Viele Grüsse
Wolle
Beitrag vom 24.05.2005 - 20:45
Diesen Beitrag melden   nach weiteren Posts von wolle suchen wolle`s Profil ansehen wolle eine Kurznachricht senden wolle`s Homepage besuchen wolle zu deinen Freunden hinzufügen zum Anfang der Seite
Luke ist offline Luke  
869 Beiträge - click.EXE - Fastguru
Luke`s alternatives Ego
Hallo Wolle, ...

erst mal Danke für's Happy Birthday !!!
glücklich

Einige kleine Fehler habe ich noch in Deinen Schlußfolgerungen gefunden:

Zitat
Andersherum muss ich bei einer asynchronen Verbindung immer was zurückschicken, so dass ich weiss, dass der andere da ist und mich verstanden hat.

Nein, Du MUSST nichts zurück schicken.

Der Aufruf von ::Netzwerk_Verbunden ist im Grunde bereits die Bestätigung dass der andere da ist und die Verbindung zustande gekommen ist.
Dies erfolgt automatisch, wenn der Server in ::Netzwerk_Verbindung nicht explizit die Verbindung ablehnt. Also unbedingt noch etwas schicken ist nicht nötig.

Ich mache dies (also eine kurze 'Hallo, wer ist da?' Kommunikation) jedoch in meinen Skripten, um überhaupt zu überprüfen, mit WEM ich mich denn da überhaupt verbunden habe.
Denn es könnte ja sein, dass ich mich gerade mit einem Rechner verbunden habe, auf dem zufällig ein anderes Programm auf dem gleichen Port lauscht aber an sonsten garnichts mit mir zu tun hat.

Liefert also diese 'Hallo, wer bist Du?' Kommunikation nicht die gewünschten Antworten, so breche ich die Verbindung aus Sicherheitsgründen wieder ab.
Unbedingt NÖTIG ist diese Sicherheitsvorkehrung natürlich nicht.

Zitat
Jetzt stellt sich mir aber die Frage, was für ne ID muss ich angeben, wenn der Server jetzt auch was sendet und somit gleichzeitig zum Client wird ?

Als erstes - der Server wird natürlich nicht dadurch zum Client, nur weil er etwas sendet. Der Server ist halt der, der 'gelauscht' hat, und der Client ist der, der 'aktiv' nach einer Verbindung gefragt hat.
Der Server bleibt also der Server und der Client bleibt natürlich der Client.

Der Unterschied zwischen Server und Client liegt im Wesentlichen in der Verwaltung der ID's.

Wenn Du von einem Client AKTIV eine Verbindung zu einem Server herstellen möchtest, so machst Du dies ja GEWOLLT und zu einem festgelegten Zeitpunkt !!!
Somit kannst Du auch ganz explizit hierfür eine ID nach Deinen Wünschen bestimmen (also z.B. 1,2,3, usw.).

Bei einem Server sieht dies natürlich etwas anders aus.
Der Server ist ja im Grunde in einer ungewissen Wartestellung.
Er weiss weder WANN sich ein Client anmelden wird noch WIEVIELE Clients es mal werden können.

Somit kannst Du also einer ankommenden Verbindung nicht selber explizit eine ID vergeben, sondern bekommst eine vom System vorgegeben (z.B. 730, 848, 920).

Und zwar für JEDE EINZELNE Clientverbindung EINE EIGENE ID.

Und genau diese ID benötigst Du um mit genau diesem Client zu kommunizieren.

Denn wenn sich z.B. 5 Clients mit Dir verbunden haben, musst Du ja auch irgendwie eine Möglichkeit haben um eine Nachricht an nur einen bestimmten Client zu schicken - und dies machst Du halt über die ID, die Dir das System zugewiesen hat, als sich DIESER Client verbunden hatte.

So einigermassen verstanden? glücklich

Zu Deinem Problem mit meinen Skripten:

Hmmm, kann ich momentan nicht so ganz nachvollziehen !?!

- Nach einem Connect sollte der 'Connect' Button disabled und der 'Disconnect' und 'Send' Button enabled sein.
- Mehrmalige Tests waren bei mir immer erfolgreich.

Sehr seltsam ist: Wenn Du beim Client schon 'Netzwerk_Verbunden' stehen hast, dann MÜSSEN im Grunde die Buttons demendsprechend aktiviert bzw. deaktiviert sein, da dies in der gleichen Unterroutine gemacht wird, in der auch die Nachricht 'Netzwerk_Verbunden' ausgegeben wird (siehe Skript)?!? gelangweilt

:: Netzwerk_Verbunden
Setze in [.Element Liste]: '[Zeit] - Netzwerk_Verbunden¶[.Element Liste]'
Setze in [.Element(Button1).Aktiv]: '0'
Setze in [.Element(Button2).Aktiv ]: '1'
Setze in [.Element(Button3).Aktiv]: '1'

Zurück

Könntest Du das evtl. bei Dir nochmal überprüfen?

Gruß, Luke


Der Post wurde 1 mal editiert, zuletzt von Luke am 25.05.2005 - 01:31.
Beitrag vom 25.05.2005 - 01:27
Diesen Beitrag melden   nach weiteren Posts von Luke suchen Luke`s Profil ansehen Luke eine Kurznachricht senden Luke zu deinen Freunden hinzufügen zum Anfang der Seite
wolle ist offline wolle  
RE:
1093 Beiträge - click.EXE - Guru
Hallo Luke,

Wow, das war ja ne ausführliche Antwort glücklich Das hilft mir bestimmt weiter. Ich hoffe über das lange Weekend habe ich mal genügend Zeit.

Zitat
Original geschrieben von Luke

[....]
Hmmm, kann ich momentan nicht so ganz nachvollziehen !?![/B]
- Nach einem Connect sollte der 'Connect' Button disabled und der 'Disconnect' und 'Send' Button enabled sein.
- Mehrmalige Tests waren bei mir immer erfolgreich.
[...]


Was ich befürchte ist, dass eventuell ein Problem bei meiner Cx Version vorliegt. Ich habe es auf zwei verschiedenen PCs ausprobiert und beides mal das selbe Ergebnis. Kannst du mir per PM mal die kompilierten EXEs zumailen ? So können wir dann feststellen, ob ich oder mein PC das Problem ist lachend

Vorab schonmal besten Dank !
Zitat

Somit kannst Du also einer ankommenden Verbindung nicht selber explizit eine ID vergeben, sondern bekommst eine vom System vorgegeben (z.B. 730, 848, 920).


Wird bei einer eingehenden Verbindung sichergestellt, dass die ID auch frei ist ? D.h. kann es nicht passieren, dass eine von mir zuvor vergebene ID nochmals vergeben wird ?

Gruss Wolle


Der Post wurde 1 mal editiert, zuletzt von wolle am 25.05.2005 - 15:48.
Beitrag vom 25.05.2005 - 08:53
Diesen Beitrag melden   nach weiteren Posts von wolle suchen wolle`s Profil ansehen wolle eine Kurznachricht senden wolle`s Homepage besuchen wolle zu deinen Freunden hinzufügen zum Anfang der Seite
Luke ist offline Luke  
869 Beiträge - click.EXE - Fastguru
Luke`s alternatives Ego
Hi again, ...

die EXE sind unterwegs! glücklich

Zitat
Wird bei einer eingehenden Verbindung sichergestellt, dass die ID auch frei ist ? D.h. kann es nicht passieren, dass eine von mir zuvor vergebene ID nochmals vergeben wird ?

Jo, das wird sichergestellt !!!
No, das kann nicht passieren !!!

zwinkern

Gruß, L.

Beitrag vom 28.05.2005 - 13:50
Diesen Beitrag melden   nach weiteren Posts von Luke suchen Luke`s Profil ansehen Luke eine Kurznachricht senden Luke zu deinen Freunden hinzufügen zum Anfang der Seite
wolle ist offline wolle  
ID's again
1093 Beiträge - click.EXE - Guru
@ Luke

also nachdem die ganze Geschichte soweit jetzt geklärt ist, hänge ich aber doch noch irgendwie in der Luft ärgerlich

Soweit habe ich folgendes verstanden und auch mit Hilfe eines Beispiel-Skripts (Netzwerk-Chat.CX3) nachvollziehen können:

Client:
Ich gebe bei Netzwerk-Verbinden als Client z.B. ID=5 | Ziel-IP=192.168.0.2 | Port=7777 an. Wenn nun Netzwerk_Verbunden bei meinem Client ausgelöst wird, dann werde ich die Ziel-IP immer erreichen, wenn ich bei ID=5 angebe.

so und jetzt ist mir einiges nicht klar, was den Server betrifft:.

Server
Er lauscht (muss ich da ne ID angeben?).
In Netzwerk_Verbindung sollte ich doch jetzt über Auslesen von ID und FerneIP wissen wer was von mir will und welche ID er bekommen hat ?

Nur unterscheidet sich bei mir die ID, die ich in Netzwerk_Verbindung auslese und die, die ich bei Netzwerk_Empfang bekomme ?! Obwohl ich nur eine einzige Verbindung habe.

Viele Grüsse Wolle
Beitrag vom 28.05.2005 - 22:29
Diesen Beitrag melden   nach weiteren Posts von wolle suchen wolle`s Profil ansehen wolle eine Kurznachricht senden wolle`s Homepage besuchen wolle zu deinen Freunden hinzufügen zum Anfang der Seite
Luke ist offline Luke  
Mit der Server-ID ist das so'ne Sache ...
869 Beiträge - click.EXE - Fastguru
Luke`s alternatives Ego
Hi Wolle, ...

das mit dem Client scheinst Du ja jetzt im Griff zu haben. zwinkern

Was den Server betrifft ist dies schon eine etwas heiklere Sache.

Denn wenn beim Server ::Netzwerk_Verbindung ausgelöst wird, steht die neue ID ja noch garnicht fest.
Denn innerhalb von ::Netzwerk:Verbindung kannst Du ja durch [.VerbindungAblehnen] noch verhindern, dass überhaupt eine Verbindung zustande kommt.
Erst NACH Verlassen von ::Netzwerk_Verbindung wird die Verbindung tatsächlich aufgebaut und serverseitig eine ID vergeben.

Und dies bereitet in der Tat ein wenig Schwierigkeiten:
Da ::Netzwerk_Verbindung ja nicht zu einem von Dir festgelegten Zeitpunkt, sondern irgendwann - durch Anmeldung eines Clients aufgerufen wird, kannst Du natürlich nach Verlassen von ::Netzwerk_Verbindung auch nur schwer darauf reagieren.

Aus diesem Grunde habe ich mich dazu entschieden, eine 'Hello'-Kommunikation zwischen Client und Server zu integrieren und mich ausschließlich auf diese zu verlassen.
Soll heissen - ::Netzwerk_Verbindung ist mit im Grunde egal - wenn man sie weglässt, dann ist dies gleichbedeutend mit einer Akzeptanz der einkommenden Verbindung.

Für mich wichtig sind nur die Dinge die danach geschehen:
- Wenn der Client eine Verbindung aufbauen konnte, sendet er ein 'Hello'-Signal mit verschiedenen weiteren Informationen.
- Dieses kann der Server ja ganz explizit empfangen und auswerten.
- Erst wenn das 'Hello'-Signal in Ordnung ist werte ich für die ID dieser Nachricht aus und trage den Client in meine Liste von verundenen Clients ein.
- Nun habe ich also die benötigte ID, um mit diesem Client zukünftig zu kommunizieren.

Klingt evtl. etwas komplizert, hat sich aber bei meinen diversen Tests als die beste und sicherste Lösung herauskristalisiert.

Eine Möglichkeit, die ID bereits innerhalb von ::Netzwerk_Verbindung zu erhalten besteht laut Stefan wohl leider nicht.

Kannst es ja einfach mal auf diesem Wege versuchen und mal berichten wie's geklappt hat. zwinkern

Gruß, Luke.

Beitrag vom 29.05.2005 - 11:10
Diesen Beitrag melden   nach weiteren Posts von Luke suchen Luke`s Profil ansehen Luke eine Kurznachricht senden Luke zu deinen Freunden hinzufügen zum Anfang der Seite
wolle ist offline wolle  
1093 Beiträge - click.EXE - Guru
Tach Luke,

na dann bin ich ja froh, dass ich's wohl doch kappiert habe lachend

Zitat

Klingt evtl. etwas komplizert, hat sich aber bei meinen diversen Tests als die beste und sicherste Lösung herauskristalisiert.

Ich würde nicht sagen, dass es kompliziert ist, das war sowieso mein allererster Ansatz, den ich dann aber wegen IDs und Co verworfen hatte.

Nochmals um sicher zu gehen:
Wenn der Client eine Verbindung aufgebaut hat und ein "huhu" an den Server schickt. Ist dann auf serverseite garantiert dass:
Wenn ich in Netzwerk_Empfang eine "huhu" finde, diesem "huhu" sofort eine ID und IP zuordnen kann und zwar alles innerhalb der Marke Netzwerk_Empfang ? Und das ist dann auch definitiv dieser Client und kein anderer.

Sofern meine Vermutung stimmt, dann dürfte es auch kein Problem sein, wenn zwei Clients gleichzeitig ein "huhu" senden, denn ich weisse einem nach dem anderen seine IP und ID zu, bevor ich Netzwerk_Empfang verlasse.

Grüsse Wolle
Beitrag vom 29.05.2005 - 11:26
Diesen Beitrag melden   nach weiteren Posts von wolle suchen wolle`s Profil ansehen wolle eine Kurznachricht senden wolle`s Homepage besuchen wolle zu deinen Freunden hinzufügen zum Anfang der Seite
Luke ist offline Luke  
869 Beiträge - click.EXE - Fastguru
Luke`s alternatives Ego
Hi again, ...

Zitat
Wenn der Client eine Verbindung aufgebaut hat und ein \"huhu\" an den Server schickt. Ist dann auf serverseite garantiert dass:
Wenn ich in Netzwerk_Empfang eine \"huhu\" finde, diesem \"huhu\" sofort eine ID und IP zuordnen kann und zwar alles innerhalb der Marke Netzwerk_Empfang ? Und das ist dann auch definitiv dieser Client und kein anderer.

Jo, genau so isses. Denn wenn Du in ::Netzwerk_Empfang eine Nachricht empfängst, liefert Dir [Netzwerk.ID] die dazugehörige ID.
Dies benötigst Du ja im Grunde auch später noch, damit Du auch dann eine ankommende Nachricht einem Client zuordnen kannst.
Das 'huhu' benötigst Du ja nur beim ersten mal um dem Server mitzuteilen, dass sich hier ein 'neuer' Client anmeldet.

Zitat
Sofern meine Vermutung stimmt, dann dürfte es auch kein Problem sein, wenn zwei Clients gleichzeitig ein \"huhu\" senden, denn ich weisse einem nach dem anderen seine IP und ID zu, bevor ich Netzwerk_Empfang verlasse.

Abermals - Jo, so isses !!!
(Warum erklär ich Dir das überhaupt noch wenn Du's ohnehin schon kapiert hast ?!? grosses Lachen )
Zwei Nachrichten von unterschiedlichen Clients lösen zwei unterschiedliche ::Netzwerk_Empfang Ereignisse aus und werden nacheinander abgearbeitet.

Sodele, ... und nu mal frisch ans Werk ... jetz' willisch aber auch Erjebnisse sehen !!! grosses Lachen

Luke.

Beitrag vom 29.05.2005 - 11:49
Diesen Beitrag melden   nach weiteren Posts von Luke suchen Luke`s Profil ansehen Luke eine Kurznachricht senden Luke zu deinen Freunden hinzufügen zum Anfang der Seite
wolle ist offline wolle  
Themenicon   
1093 Beiträge - click.EXE - Guru
So denn besten Dank für deine Ausführliche Hilfe.

Zitat

Sodele, ... und nu mal frisch ans Werk ... jetz' willisch aber auch Erjebnisse sehen !!!

Ich glaub ich muss mich jetzt erst mal ausruhen, bei der Hitze brennt einem sonst noch der Prozessor im Schädel durch

Am besten wär's diesen Thread hier in die Hilfe vom Netzwerkplugin zu übernehmen, ich glaub dann kann man durchsteigen. Denn allein von der Beschreibung kommt man irgendwie nicht weiter. ABER es ist natürlich spitze wie einem hier im Forum geholfen wird !!!

Schönen Sonnatch noch !
Wolle
Beitrag vom 29.05.2005 - 11:59
Diesen Beitrag melden   nach weiteren Posts von wolle suchen wolle`s Profil ansehen wolle eine Kurznachricht senden wolle`s Homepage besuchen wolle zu deinen Freunden hinzufügen zum Anfang der Seite
wolle ist offline wolle  
Themenicon   
1093 Beiträge - click.EXE - Guru
Tach Luke,

Zitat

Sodele, ... und nu mal frisch ans Werk ... jetz' willisch aber auch Erjebnisse sehen !!! grosses Lachen
Luke.


Ich glaub um ne Beta hier zu posten wär's noch zu früh. Aber so wie's jetzt aussieht scheint's deutlich besser zu funktionieren als zuvor. Bin wohl auf dem richtigen Weg grosses Lachen
Sind noch ein paar Ungereimtheiten, aber vielleicht kann ich die selbst klären.

Deine Unterstützung war echt hilfreich !
Man liest sich !
Wolle
Beitrag vom 04.06.2005 - 13:56
Diesen Beitrag melden   nach weiteren Posts von wolle suchen wolle`s Profil ansehen wolle eine Kurznachricht senden wolle`s Homepage besuchen wolle zu deinen Freunden hinzufügen zum Anfang der Seite
Baumstruktur - Signaturen anzeigen
Seiten (1): (1)
vorheriges Thema   nächstes Thema

Gehe zu:  
Es ist / sind gerade keine registrierte(r) Benutzer und 270 Gäste online. Neuester Benutzer: AS-Systeme
Alles gute zum Geburtstag    Wir gratulieren ganz herzlich zum Geburtstag:
kcwsoft (65)
aktive Themen der letzten 48 Stunden - Top-User
0
0

www.ClickEXE.de © 2021
Seite in 0.53954 sec generiert