Seite 1 von 1

NetworkServerEvent()

Verfasst: 26.06.2006 11:56
von uweb
Hallo,

so schön der Komfort auch ist, habe ich mit Black-Boxen doch immer so meine Probleme.


1.)

Bei NetworkServerEvent() gibt es ja die Möglichkeit, daß ein Client die Verbindung beendet.
Es gibt aber auch die Möglichkeit, daß er das nicht tut wenn z.B. das Client-Programm einfach so beendet wird.
Offensichtlich merkt sich der Server die Verbindung dann weiter.
Ich glaube ich habe sogar irgendwo gelesen, daß er für jeden Cliebt einen eigenen Buffer vorhält.
Wenn das sehr oft passiert (z.B. wenn der Server sehr lange läuft) werden dann irgendwann der Speicher oder die ClientIDs knapp ?
Gibt es die Möglichkeit eine Verbindung durch den Server so zu beenden, daß die Verbindung wirklich frei wird ?
Neben einer Timeout-Variante schwebt mir noch die Variante vor, daß der Server die Verbindung nach einer abgeschlossenen Aktion beendet.

edit :
OK, RTFMC (Read The Fucking Manual Carefully) -> CloseNetworkConnection() geht auch beim Server.


2.)

Woran erkennt der Server eigentlich eine bestehende Verbindung ?

Ich bastle gerade an einem FTP-Server den ich als Netzlaufwerk anspreche (Verknüpfung mit Webodner oder FTP-Site erstellen).
Wenn ich mehrere Windows-Explorer-Fenster auf habe bekommen die meistens die gleiche ClientID.
Wenn ich aber ein anderes Programm nutze (z.B. Wordpad -Datei-öffnen) bekomme ich eine andere ClientID.
Schließe ich Wordpad und probiere es noch einmal bekomme ich die gleiche ClientID.

Daß ständig wechselnde ClientIPs erscheinen geht mir noch in den Kopf (zumindest vermute ich die Ursache bei meinem Router).
Die Vergabe von ClientIDs bzw die Erkennung von "bestehenden" Verbindungen kann ich aber nicht nachvollziehen.

Re: NetworkServerEvent()

Verfasst: 26.06.2006 16:24
von Joel
uweb hat geschrieben:Die Vergabe von ClientIDs bzw die Erkennung von "bestehenden" Verbindungen kann ich aber nicht nachvollziehen.

Stell dir das Internet vor wie ein großes Hohl-rohr das mit jedem Computer verbunden ist. Stell dir dann vor das wenn eine Verbindung hergestellt wird ein Kabel gelegt wird.

Und ob das besetzt ist vermute ich mal geht so dass in jedem Ort oder Bundesland so ne art Zentral-Computer ist der alles speichert (die bestehenden Verbindungen). Oder es könnte sein dass es einen für Deutschland gibt wo wenn du eine verbindung herstellst erst de Server von deinem Internet-Anbieter weiß und der das dann an den Haupt-Computer sendet.


Bin mir aber nicht sicher, ist nur ne vermutung!

Verfasst: 26.06.2006 16:38
von Tafkadasom2k5
Die ClientIDs von UWebs FTP-Clienten werden schon von Backbones im Internet vergeben? Mächtig, mächtig :lol:

Wovon redest du, Joel? :lol: :?

Gr33tz
Tafkadasom2k5 :allright: :)

Verfasst: 26.06.2006 18:16
von Joel
Tafkadasom2k5 hat geschrieben: Wovon redest du, Joel? :lol: :?

Von meiner Oma! :lol: :D

Verfasst: 26.06.2006 19:19
von uweb
Ok, ich bin wieder da.

( Meine beiden Lieblingsurlaubsländer haben ihr Spiel beendet.
Italien hat mit einem Elfmeter in der 90. Minute 1:0 gegen Australien gewonnen. )

Kann mir jemand verraten wovon Joel's Oma es abhängig macht ob sie ein neues Rohr legt oder das alte benutzt ?

Aber vielleicht macht sie das ja von seinem Opa ( Windows ) abhängig.
Mein Verdacht geht dahin, daß Windows die Vergabe nach eigenem gutdünken regelt.

Mein eigentliches Problem (1.) habe ich ja schon selbst gelöst.
2. war nur wegen dem unguten Gefühl die Katze im Sack als Komponente zu haben.

Vielleicht hat ja noch jemand entfernte Verwandte im FTP-Protokoll-Clan und kann mir das beantworten :

http://www.purebasic.fr/german/viewtopic.php?t=9018

Verfasst: 27.06.2006 13:05
von bobobo
schnipp schnapp und schon ist's ab.
vermülleimert

Verfasst: 27.06.2006 15:35
von Tafkadasom2k5
Ich bin was das angeht gerade überfragt, hätte aber eine Idee.
"Tunnelblick" von H4x0r sollte dir einen Überblick über die Daten geben, die deine Client-Programme und dein Server senden und empfangen.

Somit könntest du nachschauen, ob beim ersten Kontaktversuch mit dem Server irgendwie eine Identitätsnummer ausgetauscht wird, die dem Server sagt, dass er nochmal die gleiche ID für das Programm vergeben sollte, weil es schonmal angemeldet war und ansonsten nur unnötig Resourcen belegt..

Wenn du aber bei jedem Connect einen neuen Memory-Buffer erstellst und den "veralteten" weder freigibst, ist das wohl auch kein großes Problem.

Ansonsten könnte ich mir nur vorstellen, dass du über einen wechselnden Proxy surfst und somit ständig "neue" IPs bekommst, da du ja immer von der aktuellen Endproxy IP ausgehst. So sieht es für deinen Server aus wie eine Anfrage von einem völlig anderen PC->ist ja schließlich auch Sinn der Sache... -.-'

Gr33tz
Tafkadasom2k5

Verfasst: 28.06.2006 09:06
von uweb
Danke für den Tipp !

Ich benutze Ethereal für den gleichen Zweck.

Ohne so ein Werkzeug wäre ich auch aufgeschmissen,
da ich bis jetzt noch keine umfassende deutsche Doku zum FTP-Protokoll gefunden habe.

Ich nutze es hauptsächlich in Verbindung mit freien FTP-Servern als Referenz.
Dabei habe ich mich bisher immer auch den reinen FTP-Teil konzentriert.

Jetzt wo Du es sagst : Klar könnte ich auf dem Weg auch den TCP/IP-Teil analysieren
( - zumindest theoretisch, wenn ich mehr Ahnung vom Aufbau hätte).

Mittlerweile stelle ich aber meine Frage in Frage. :D
Was würde mir die Info nützen ?
Es drängt sich schon sehr der Verdacht auf, daß es vom Client abhängt.
Das WIE wäre also nur nice to know, weil ich den nicht beinflussen kann bzw will.

Ich hätte wohl eher fragen sollen :
Hat jemand nähere Infos oder Erfahrungen zu Ordnerverknüpfungen zu FTP-Sites unter Windows ?

Das halten von Verbindungen ist dabei nur eines meiner Probleme.
Ein Anderes ist z.B., daß der WindowsExplorer sich dabei nicht um gespeicherte Ansicht-Einstellungen kümmert.
Vor allem aber, daß er mir auch bei Verzeichnisswechsel immer das alte Directory zeigt.
Der User muß also ständig F5 drücken.

Wenn ich versuch einen eigenen Drag'nDrop-fähigen Client zu schreiben wird die FTP-URL nur vom WebGadget akzeptiert. Dort habe ich aber keine Moglichkeit auf die Ansichtseinstellung Einfluss zu nehmen.

Oder kennt jemand da einen WinAPI-Weg ?

(so etwas wie #PB_ListIcon_Report, #PB_ListIcon_List, ... für das Webgadget)

Verfasst: 28.06.2006 20:39
von mk-soft
Dann kommen wir mal zu Sache.
Schau mal unter der Hilfe von CloseNetworkConnection(Verbindung) nach

FF :wink:

Verfasst: 30.06.2006 16:26
von uweb
edit :
OK, RTFMC (Read The Fucking Manual Carefully) -> CloseNetworkConnection() geht auch beim Server.
Mein eigentliches Problem (1.) habe ich ja schon selbst gelöst.
Danke trotzdem. Der gute Wille zählt.