Seite 2 von 3

Verfasst: 18.10.2004 20:24
von PMV
1 Parameter kannste einen thread übergeben. Da ich mal jetzt vermute, das du Port und Servername übergeben willst, ist das 1 zu viel ;)

Aber da du ja eh ein Array pro Thread auf machst, könnteste ja eventuell dem Array eine Structure zu weisen, also öhm z.b.

Code: Alles auswählen

Structure Dienst
  ConnectionID.l
  Servername.s
  Port.l
EndStructure
Dim Dienst.Dienst(10)

Procedure OpenNetworkServer(Num.l) 
  Dienst(Num)\ConnectionID=OpenNetworkConnection(Dienst(Num)\Servername,Dienst(Num)\Port) 
EndProcedure 
Damit könnteste dann vor jedem Threadaufruf den Servername und den Port individuel festlegen und am Ende die ConnectionID abfragen. Am einfachste wäre so natürlich dann erst die Servernamen und Ports zu vergeben und dann eine Schleife auf zu rufen, wo die Thread gestartet werden. Hm, dann müsste aber vielleicht noch die ThreadId mit in die Strukture, damit du vorher überprüfen kannst, ob alle Threads beendet sind.

Hm, na bin auch mal gespannt, ob sich das ListIconGadget so einfach von allen seiten gleichzeitig beschreiben lässt, ohne fehler und überschneidungen ;)

MFG PMV

Verfasst: 18.10.2004 20:27
von pvmichael
Eigentlich wollte ich nur einen Parameter übergeben, und zwar den Index des IconListGadget <)
PMV hat geschrieben:Hm, na bin auch mal gespannt, ob sich das ListIconGadget so einfach von allen seiten gleichzeitig beschreiben lässt, ohne fehler und überschneidungen ;)
Und ich erst :lol:

Verfasst: 18.10.2004 22:10
von Tibor
Ich habe die letzten Tage mit Win Socket herum gespielt.
Dabei ist mir auf gefallen dass das Timeout deutlich kürzer ist als bei OpenNetworkConnection().
Versuche es doch einfach mal.
Hier ein Link zu einem guten Tutorial http://www.c-worker.ch.
(Scheint es noch nicht auf Robsite.de zu geben.)

Verfasst: 18.10.2004 22:46
von pvmichael
@PMV:

Puhhh, also das mit Threads ist kompliziert. Sämtliche Variablen und LinkedLists werden durch die gleichzeitigen Threads so vermurkst, dass ein Ergebnis total blödsinnig wird. Manchmal wird immer der gleiche Dienst/Server überprüft, dann vermischen sich plötzlich die Daten. Auch das IconListGadget fühlt sich nicht besonders wohl, wenn mehrere Threads gleichzeitig schreiben wollen. Ich fürchte mit Threading bekomme ich das nicht hin.

@Tibor:

Danke für den Link, das werde ich mir mal ansehen...

Verfasst: 19.10.2004 14:43
von PMV
linklisten O_O ... löl ... ne die kann man ganz vergessen mit gleichzeitigen beschreiben, deswegen ja Arrays :D .

Hm, kannste das denn nicht so machen, wie ich vorgeschlagen hab?
Erst die Dienste überprüfen und die ergebnisse in Arrays schreiben, und danach das ListIconGadget in einer Schleife bearbeiten?

Das einziege problem ist ja doch eigentlich nur die 20s Suchzeit. Wenn du alle gleichzeitig suchen lässt ist das ganze nach 20s durchlaufen und man könnte in ruhe die ergebnisse auswerten. Aber bei Arrays gibs natürlich das problem, das die Maxmenge bekannt sein muss. Aber es wird doch keine 100 dienste geben? ... vielleicht auch keine 50. So könnteste die Linkliste durch das Array austauschen und das ganze für max 50 Dienste durchlaufen lassen. Dann testeste, ob es mehr als 50 dienste gibt und lässt das dann noch mal durch laufen für die restlichen Dienste.

Das wäre immer noch schneller, als wenn man für jeden nichtgefunden Dienst 20s warten müsste.

MFG PMV

Verfasst: 19.10.2004 14:47
von pvmichael
PMV hat geschrieben:linklisten O_O ... löl ... ne die kann man ganz vergessen mit gleichzeitigen beschreiben, deswegen ja Arrays :D .
Ich dachte linkedlists sind arrays :o

Kannst Du mir zeigen, wie ich ein Array (evtl. mehrere Dimensionen?) anlegen, auslesen und bearbeiten kann? (Unter PHP kenn ich mich mit Arrays aus)

Viele Grüsse

pvmichael


EDIT: Komisch, hab grad mit Arrays gespielt, und dabei begriffen, wie es unter PB funktioniert :lamer:

Verfasst: 19.10.2004 14:58
von PMV
hm, ich hab mit mit der bedeutung von "Array" nie auseinander gesetzt ... nur das was ich hier im forum gelesen hab ;) und dabei hab ich immer zwischen "Array" und "LinkListe" unterschieden. Aber lass mich natürlich gerne berichtigen :D

EDIT: Komisch, hab grad mit Arrays gespielt, und dabei begriffen, wie es unter PB funktioniert
^^na dann brauch ich dir ja nicht mehr sagen wies geht ;) ... dann warten wir mal in ruhe auf das ergebnis :D

MFG PMV

Verfasst: 19.10.2004 15:10
von freedimension
Es wundert mich immer wieder, wie alteingesessene Programmierer (die anscheinend sogar PHP können) an den einfachsten Grundbegriffen der Programmierung scheitern :o

Verfasst: 19.10.2004 22:18
von pvmichael
PMV> dann warten wir mal in ruhe auf das ergebnis

ich habs tatsächlich geschaft, das ganze mit arrays und threads hinzubekommen. bis jetzt scheint es fehlerfrei zu funktionieren. allerdings hab ich jetzt noch einiges zu tun, da ich die liste der zu prüfenden server/dienste via add/modify/remove dem user per gui ermöglichen will.

@freedimension: kannst du mir sagen was die einfachsten Grundbegriffen der Programmierung in diesem Fall sind?

Verfasst: 28.10.2004 01:09
von pvmichael
Also das mit den Threads gefällt mir irgendwie nicht so recht. Es scheint zwar zu klappen, aber mir ist dabei nicht wohl. Ich weiß nicht genau warum.

Gibt es vielleicht eine Möglichkeit, zumindest das Fenster "nutzbar" zu haben, während das OpenNetworkConnection auf den Timeout wartet?

Nutzbar = verschiebbar, minimierbar, schliessbar

Grüsse

pvmichael