Seite 2 von 4
Re: Netzwerkanwendung
Verfasst: 27.05.2015 22:00
von mk-soft
Re: Netzwerkanwendung
Verfasst: 27.05.2015 22:05
von edel
Sicher das dein Port stimmt?
Re: Netzwerkanwendung
Verfasst: 27.05.2015 22:11
von STARGÅTE
@mk-soft: Ich habe mir deine Links nicht angesehen, aber sicher das OpenNetworkConnection() nicht tread-Safe ist?
Ich benutze schon seit Jahren eine Prozedur bei der mehrere ServerAdresse per Thread gleichzeitig kontaktiert werden und bekomme auch immer richtige Ergebnisse.
@derschutzhund:
Bei mir funktioniert der Code von NicTheQuick. Ich habe ein Server erstellt und bekomme genau bei dieser IP ein UP.
Edit: Auch bei Port 80, bekomme ich genau von meinem Rooter, Drucker und WLan ein UP.
Re: Netzwerkanwendung
Verfasst: 27.05.2015 23:16
von derschutzhund
Bin jetzt gerade mal zu Linux gewechselt um weiterzutesten.
Hier kommt ein Fehler bei " WaitThread(\thread)" mit der Info ungültiger Speicherzugriff.
Das ist aber erst mal unwichtig!
Wenn es läuft sollte es ja unter Windows laufen und dann evtl. unter Linux.
Vielleicht mache ich auch einen Grundsätzlichen Denkfehler?
Auf allen PCs mit denen ich von einem Hauptrechner aus Verbindung aufnehmen will läuft, wie bereits geschrieben das Script: "SimpleHTTPServerWithUpload.py"
Wer es nicht kennt, es startet einen einfachen httpServer mit dem Port 8000
Ruft man dann über einen Browser diesen PC z.B. mit
http://192.168.178.50:8000 auf dann bekommt man eine Übersicht der Dateien die sich im Startverzeichnis von SimpleHTTPServerWithUpload.py befinden und kann sie downloaden. Weiterhin kann man auch einzelne Dateien uploaden. Eigentlich genau was ich haben möchte.
Ist es denn überhaupt möglich mehrere dieser Server mit dem gleichen Port 8000 zu starten ohne, dass sich da was in die Quere kommt oder hab ich da grundsätzlich schon ein Problem und kann damit überhaupt nicht arbeiten???
Übrigens hab ich unter Linux ein miniprogrämmchen gefunden: "check_ip" das innerhalb von ca. 2 Sekunden alle Adressen findet. Das geht aber halt unter Windows nicht.
LG
Wolfgang
Re: Netzwerkanwendung
Verfasst: 27.05.2015 23:47
von NicTheQuick
derschutzhund hat geschrieben:Ist es denn überhaupt möglich mehrere dieser Server mit dem gleichen Port 8000 zu starten ohne, dass sich da was in die Quere kommt oder hab ich da grundsätzlich schon ein Problem und kann damit überhaupt nicht arbeiten???
Das ist kein Problem.
Re: Netzwerkanwendung
Verfasst: 27.05.2015 23:57
von derschutzhund
Das ist kein Problem.
Na, das ist ja erst mal gut!
LG
Wolfgang
Re: Netzwerkanwendung
Verfasst: 29.05.2015 07:45
von derschutzhund
Unter Linux ist mein Progrämmchen so weit fertig.
Ich rufe für die Ermittlung der IPs zunächst das externe Prog. "check_ip" auf.
Das erzeugt extrem schnell eine kleine Liste mit den belegten IPs.
Nun untersuche ich ob die Verbindung zu einem meiner PCs führt und ob die Datei nr.dat besteht.
In der nr.dat steht die Platznummer des PCs.
Da die IP dynamisch vergeben wird muss ich das machen um zu ermitteln welcher PC gerade welche IP hat.
Wie gesagt unter Linux ist es jetzt erst mal ok.
Jetzt suche ich noch eine schnelle, zuverlässige Lösung um die IPs zu finden unter Windows.
LG
Wolfgang
Re: Netzwerkanwendung
Verfasst: 29.05.2015 23:44
von derschutzhund
Hallo Nic,
teste gerade noch mal alles was mir so einfällt und da bin ich auf etwas gestoßen.
Wenn ich bei deinem Programm auch nur 10 IPs untersuchen lasse und den Bereich so lege, dass der aktive PC in diesem Bereich liegt dann wird es als up gefunden. Versuche ich es mit 30 Adressen dann wird der PC nie als up gefunden!
Ist ein ähnlicher Effekt wie bei mir wenn ich Timeout auf unter eine Sekunde setzte.
Wenn ich mit meinem primitivprogramm nur z.B. 8 Adressen testen lasse kann ich Timeout teilweise auf 10 finden und der aktive PC wird gefunden.
Code: Alles auswählen
Procedure ipermittelnwin(EventType)
Define String$, i.i, ip$
InitNetwork()
For i = 46 To 51
ip$ = "192.168.178." + Str(i)
If OpenNetworkConnection(ip$,8000,#PB_Network_TCP,10)
String$ = ip$ + " gefunden"
Else
String$ = ip$ + " nix"
EndIf
Debug String$
Next
EndProcedure
Damit wird bei 192.168.178.50 eine IP gefunden.
LG
Wolfgang
Re: Netzwerkanwendung
Verfasst: 30.05.2015 13:00
von NicTheQuick
Das ist eben alles eine Sache der Netzwerkauslastung. Normalerweise sind da Timeouts von Minuten üblich, und nicht von Millisekunden. Da musst du halt mit leben.

Re: Netzwerkanwendung
Verfasst: 30.05.2015 13:18
von derschutzhund
Dann verstehe ich aber nicht wieso das kleine Tool "chkip" unter Linux für 255 Adressen nur 2 Sekunden benötigt???
"chkip" arbeitet mit fping an Stelle von ping.
Gibt es fping evtl. auf für Windows?
LG
Wolfgang