1. Dashboard
  2. Mitglieder
    1. Letzte Aktivitäten
    2. Benutzer online
    3. Team
    4. Mitgliedersuche
  3. Forenregeln
  4. Forum
    1. Unerledigte Themen
  • Anmelden
  • Registrieren
  • Suche
Alles
  • Alles
  • Artikel
  • Seiten
  • Forum
  • Erweiterte Suche
  1. AutoIt.de - Das deutschsprachige Forum.
  2. Mitglieder
  3. dost0011

Beiträge von dost0011

  • TCPSend()

    • dost0011
    • 26. September 2013 um 18:05
    Zitat von Andy

    alpines, gibt es, ist aber im beschriebenen Fall wirkungslos, Ursache s. Links.


    Ich bin wirklich froh, dass es Leute wie dich gibt, die mit Engelsgeduld immer wieder weiterhelfen. Ich meine das nicht ironisch.
    Danke.

    Das dumme ist halt, dass keiner, der sich an so ein Thema wie TCP oder UDP herantraut, vorher irgendwelche Spezifikationen liesst, wie das Zeugs überhaupt funktioniert. Wenn es in der Autoit Hilfe nicht erwähnt ist (oder in den Beispielen dort nicht auftaucht) dann macht man immer wieder solche Entdeckungen und ist "verdutzt".

    Ich bin mit einem echt großen Aufwand nun von UDP auf TCP umgestiegen, weil ich gemerkt habe, dass ich mit UDP Verluste habe, die mir "weh" tun. Nun dachte ich, dass mit TCP alles roger ist und ich mich nicht mehr darum kümmern muss, dass Pakete verloren gehen können ohne dass ich es merke.
    Jetzt lerne ich gerade schmerzvoll, dass das nicht der Fall ist und ich selber eine Sicherung einbauen muss. Dieser nun zu implementierende Sicherheitsmechanismus hätte vielleicht auch mit dem UDP Protokoll geholfen - da hätte ich mir die Arbeit sparen können.

    Aber dafür könnt ihr natürlich nichts...
    Trotzdem nochmal ein Danke. Und stelle dir das mit der Suche nicht so leicht vor, wenn man gar nicht so genau versteht, warum es nicht funktioniert ist es auch immer schwierig danach zu suchen...

  • TCPSend()

    • dost0011
    • 26. September 2013 um 14:38

    Hallo,

    ich habe mir die Frage gestellt, wie TCPSend() erkennen möchte, ob das Senden erfolgreich war:
    Wenn ich TCPSend() aufrufe, dann möchte ich ja sofort im Code weiter laufen - benötige also auch sofort einen Rückgabewert.
    Zu diesem Zeitpunkt hat das Senden vielleicht schon geklappt - vielleicht aber auch nicht (TCP wird es ja vermutlich öfters probieren).

    Also ausprobieren:
    Und tatsächlich: Zum Versuch habe ich eine Verbindung zwischen 2 Rechner aufgebaut und sende alle 500ms ein Zeichen.
    Wenn ich nun die Verbindung (WLAN) trenne, dann dauert es ca. 10 - 40s bis der Sender @error meldet.
    Warum das so stark schwankt, weiß ich nicht. Konkret heißt das aber, dass ich im Extremfall 40s lang munter Sende, ohne dass es beim Empfänger ankommt - und ohne dass irgendjemand was merkt. So habe ich mir das mit dem TCP nicht vorgestellt.
    Den Empfänger kriege ich dazu, dass er über Timeout merkt, dass nichts mehr ankommt und die Verbindung trennt bzw. neu aufbauen möchte - da aber ja keine Verbindung mehr zum Sender besteht, kriegt der das nicht mit und sendet munter weiter, ohne sich zu beklagen.
    Erst nach max. 40s gibt es einen Fehler - ich kann eine neue Verbindung aufbauen und alles läuft wieder.

    Mich ärgert es aber, dass der Sender nicht mitkriegt, dass zumindest zeitweise nichts ankommt. :cursing:
    Habt ihr eine Idee, was ich da machen kann?

    Vielleicht soll der Empfänger einfach zurücksenden, was er empfangen hat - dann könnte ich beim Sender über Timeout erkennen, dass die Verbindung weg ist.
    Ich dachte aber, dass TCP bereits sowas hat...

  • TCPrecv

    • dost0011
    • 23. September 2013 um 14:50
    Zitat von vonglahn

    Für etwas Aufhellumng wäre ich dankbar

    Wir auch ;)

    Was kommt denn genau zurück? Gar nichts?

    Ich habe mal 2 kleine Programme geschrieben, wo man einen Server und einen Client laufen lassen möchte.
    Die Programme funktionieren - vielleicht hilft dir das bei deiner Fehlersuche.
    (Könntest ja z.B. den Server mal mit 127.0.0.1 und dem richtigen Port mal auf dem gleichen Rechner laufen lassen - dann siehst du nämlich, was dein Programm genau sendet...

  • Laufzeit von TCPConnect verringern

    • dost0011
    • 19. September 2013 um 13:42

    Hallo,

    ich möchte mehrere TCP Verbindungen aufbauen. Dazu rufe ich in einer Schleife TCPConnect() auf.

    Wenn die Verbindung nicht zustande kommt, benötigt der Befehl so zwischen 900 und 1050ms, was die Laufzeit der Schleife extrem anhebt.

    Meine Hoffnung, diese "Timeout" Zeit über Opt("TCPTimeout", 50) zu reduzieren, hat sich nicht bestätigt.

    Habt ihr eine Idee, wie man das besser hinbekommt?

    Grüße

  • lokale WLAN / LAN Adresse mit Autoit ändern

    • dost0011
    • 18. September 2013 um 12:29

    Hallo,

    wenn ich bei meiner Fritzbox DHCP deaktiviere, kann ich über Windows ja die IP Adresse des Rechners ändern.
    Angezeigt bekomme ich die mit Autoit über @IPAdresse1 usw.

    Gibt es auch eine Möglichkeit, diese mit Autoit zu setzen?

    Vielen Dank.

  • TCP: Verbindung baut sich auf, Übertragung findet nicht statt

    • dost0011
    • 16. September 2013 um 22:07

    Juhu, ich habe es selber hinbekommen. Habe den Code nochmal deutlich vereinfacht, damit ich überhaupt dahinter kommen konnte.
    Jetzt funktioniert es - alle Programme können beliebig geschlossen und geöffnet werden. Die Verbindung baut sich sofort wieder auf und die Übertragung funktioniert.

    Für die Nachwelt :)

    Dateien

    TCP.zip 580,43 kB – 298 Downloads
  • TCP: Verbindung baut sich auf, Übertragung findet nicht statt

    • dost0011
    • 16. September 2013 um 16:55

    Das ist nett von Dir, dass Du mir helfen möchtest.
    Das Dumme ist nur, dass ich mit meinen verfügbaren Informationen und meinem jetzigen Wissen nicht weiß, wo ich anfangen soll.

    Der Befehl TCPConnect() z.B. sorgt dafür, dass der Rechner ca. 500ms lang gar nichts mehr macht - also auch die Fenster lassen sich nicht verschieben.
    Danach erfolgt wohl ein Timeout und alles läuft wieder.

    Wenn ich nun mehrere Verbindungen mit mehreren Rechnern aufbauen möchte (und jede abgerissene Verbindung) wieder aufbauen muss, muss ich das TCPConnect() immer wieder durchlaufen, was den Rechner faktisch still legt. Keine Ahnung, was man da besser machen könnte...

    Aber das Performanceproblem will ich jetzt noch gar nicht angehen. Ich würde einfach nur gerne wissen, warum die LED grün wird (also die Verbindung aktiv ist), trotzdem aber über TCPRecv nichts empfangen wird.

    Wenn euch der Code zu durcheinander ist, kann ich nochmal versuchen, ihn weiter runterzustricken - ich habe von meinem ursprünglichen Code schon viel entfernt :)

  • TCP: Verbindung baut sich auf, Übertragung findet nicht statt

    • dost0011
    • 16. September 2013 um 14:36

    Hallo,

    ich komme einfach nicht mehr weiter. Mein Ziel ist es, eine TCP Verbindung aufzubauen, welche sich bei Störungen selbstständig wieder aufbaut.
    Es soll egal sein, ob der Client oder Server zuerst "Online" ist.
    Das habe ich jetzt geschafft. Doch leider empfängt der Server nun nichts mehr, obwohl der Client was wegschickt.
    Die Verbindung ist auch stabil da - ich blicks nicht...

    Anleitung:

    Zuerst R.exe starten
    Dann S.exe starten

    -> Verbindung wird grün, Daten werden übertragen -> alles gut.

    Alles schliessen.
    Zuerst S.exe starten
    Dann R.exe starten

    -> Verbindung wird grün, Daten werden nicht übertragen -> warum? Liegts am Sender oder am Empfänger?

    Vielen Dank für eure Hilfe!

    Dateien

    TCP.zip 585,89 kB – 286 Downloads
  • Shortcut auf einen Ordner???

    • dost0011
    • 11. September 2013 um 17:10

    Hallo,

    ich möchte einen Shortcut auf einen Ordner erzeugen.

    C:\temp
    --> Shortcut soll auf dem Desktop liegen.

    Es klappt nicht. Kann man wirklich nur Shortcuts auf Dateien - nicht auf Ordner erzeugen?

  • gesicherte Übertragung TCP

    • dost0011
    • 11. September 2013 um 11:13

    Hallo,

    ich habe erst mal eine theoretische Frage, bevor ich mich an eine Umsetzung machen möchte:

    Was passiert konkret bei einer TCP Verbindung, wenn die Übertragung (z.B. über WLAN) kurz abreisst.

    1. Kriegt der Sender mit, dass der Empfänger nichts empfangen konnte
    2. Wiederholt der Sender das automatisch oder muss ich das machen?
    3. Falls er es automatisch macht, wie lange wiederholt er es
    4. Wann / wie wird ein Verbindungsabbruch erkannt? Nur wenn gerade was gesendet wird oder sendet TCP selbständig irgendwelche Pings?

    Entschuldigt diese "Anfängerfragen".

  • rechten Mausklick abfragen

    • dost0011
    • 13. April 2013 um 00:50

    Hallo,

    ich habe gerade mit entsetzen ?( gesehen, dass ich zwar einen Mausklick setzen kann, ihn aber nicht abfragen kann!?!
    Meine Idee ist, dass ich eine alte Maus verwenden möchte, um mittels manipulierter Maustaste dem Rechner ein Ereignis mitzuteilen.
    Daher ist es mir egal, wo der Cursor gerade steht, ich möchte einfach nur wissen, wann die rechte (oder linke) Maustaste gedrückt wurde.
    Wisst ihr, wie / ob das geht?
    Vielen Dank.

  • Kann Ordner nicht löschen

    • dost0011
    • 10. April 2013 um 12:59

    Hallo Joriktos,

    das wars !!! Vielen Dank.

    Ich habe das Skript unter Win7 ausprobiert und da läuft es tatsächlich, auch wenn ich die Suche nicht mit Fileclose($search) abschließe.
    Unter XP funktioniert es dann nicht. Wenn ich die Suche jeweils sauber mit Fileclose beende, dann funktioniert es auch unter XP.
    Nachmals Danke!

    :)

  • Kann Ordner nicht löschen

    • dost0011
    • 9. April 2013 um 10:08

    Hallo,

    also ich komme nicht weiter. Habe #requireAdmin ausprobiert. Bringt nichts.

    Also nochmal damit es nicht zu Misverständnissen kommt:
    Nach dem 2. mal Durchführen sind bei mir 2 Ordner übrig: "A" und "AA".
    "AA" ist richtig (den hatten wir ja erstellt) und "A" wollte ich löschen - was aber nicht klappt.
    Habe das ganze jetzt mal noch in einem anderen Ordner probiert, den ich erstellt habe - ändert auch nichts.

    An den Rechten kann es meinermeinung nach nicht liegen, weil ja die Ordner B - Z alle erfolgreich gelöscht werden.
    Nur A kann nicht gelöscht werden, weil zuvor etwas rein und wieder raus gemoved wurde.
    Das gibts doch nicht, oder?

  • Kann Ordner nicht löschen

    • dost0011
    • 8. April 2013 um 22:18

    Mein System ist XP.

    Er kann ja alle Ordner B bis Z löschen. Nur A nicht, weil da mal was drinnen war...

  • Kann Ordner nicht löschen

    • dost0011
    • 8. April 2013 um 13:58

    Hallo,

    obwohl ich ordentliche Autoit Erfahrung habe, beiße ich mich gerade die Zähne aus.
    Ich möchte lediglich einen Ordner mit Dirremove löschen. Als Return bekomme ich 0 - der Ordner wird nicht gelöscht. Attribute habe ich keine gesetzt.

    Vielleicht könnt ihr das ganze mal ausprobieren:

    Bitte legt mal von Hand folgenden Ordner an: "C:\tmp\AA"

    Dann einfach Skript ausführen und auf "Starte Umbenennen" drücken.

    Nun wurden unter c:\tmp ein paar Ordner kreiert (A bis Z und "1-9").
    Der händisch angelegte Ordner "AA" wurde nun in "A" verschoben.

    Jetzt soll das ganze auch rückwärts klappen. Die einsortierten Ordner sollen auch wieder auf die Hauptebene c:\tmp verschoben werden und die angelegten Ordner "A" bis "Z" sollen wieder gelöscht werden.

    Dazu bitte das Skript nochmals starten und den Haken setzen. Dann auf Starte Umbennen drücken.
    Das klappt aber nur bei den Ordnern "B" - "Z". Der Ordner A kann nicht gelöscht werden, obwohl der Ordner "leer" ist (davor wurde AA ja nach c: \tmp verschoben)

    Was mache ich da falsch? Mit Filedelete gehts auch nicht. Habe auch schon probiert, eine zeitliche Pause zwischen dem Verschieben von "AA" und dem Löschen von A zu machen. Bringt alles nichts.
    Heul....

  • sichere Kommunikation über WLAN

    • dost0011
    • 23. November 2012 um 11:08

    Hallo,
    also ich muss mich bei euch für die falsche Info entschuldigen. Natürlich nutze ich UDP als Broadcast. Ich habe mir damals keine Gedanken darüber gemacht, dass Infos verloren gehen könnten und war froh, dass ich mit dem Broadcasting extrem wenig Aufwand habe.

    Der Sender schickts einfach raus und jeder der zuhört empfängt es und führt es aus. Eigentlich auch genau richtig für diese Anwendung, wenn halt nicht die Paketverluste auftreten würden...

    Also muss ich auf TCP umstellen? Jeder Teilnehmer muss sich anmelden. Dann schicke ich jedem Teilnehmer einen Aus/Einschaltbefehl. Muss der das dann noch quitieren, oder kann ich mich wegen TCP drauf verlassen, dass der das bekommen hat?

    Wie könnte ich eine Synchronität hinbekommen?
    Die ferngesteuerten Rechner sollen z.B. alle die gleichen Soundfiles abspielen. Da wäre es Klasse, wenn alle ungefähr gleichzeitig die Befehle empfangen könnten...

  • sichere Kommunikation über WLAN

    • dost0011
    • 22. November 2012 um 21:15

    Die Ideen sind gut. Ehrlich gesagt habe ich mich gewundert, dass es nicht schon ein Protokoll gibt, welches verhindert, dass Daten verloren oder beschädigt ankommen.
    Alleine schon deswegen, weil ja jeder, der über das Netzwerk was verschickt, sicher stellen muss, dass die Info unversehrt und vollständig ankommt...

  • sichere Kommunikation über WLAN

    • dost0011
    • 21. November 2012 um 17:47

    Hallo,

    ich habe eine Autoit Anwendung über TCP/IP programmiert, wo ein Client Rechner Befehle an einen/mehrere Server schicken kann. Diese Server führen dann gewisse Befehle aus. Eigentlich so ähnlich wie eine Fernsteuerung für viele Computer. Funktioniert prima.

    Aber: wenn ich das ganze über eine WLAN Verbindung mache, dann werden manchmal Befehle "verschluckt", obwohl das WLAN eine noch akzeptable Signalstärke aufweist.

    Das verschlucken von Befehlen gilt es nun zu vermeiden und ich überlege mir, wie ein sicheres Protokoll zwischen den Rechner aussehen könnte.
    Gibts da schon was fertiges, leicht umzusetzendes?

    Der Sender sendet derzeit per Broadcast mehrfach - die meisten Rechner kriegen die Befehle mit, aber nicht alle.
    Wie kann ich nun sicherstellen, dass jeder Rechner den Befehl empfangen hat?
    Habt ihr Ideen?

    Vielen Dank.

  • Erkennen, ob Festplatte eine SSD ist

    • dost0011
    • 1. August 2012 um 09:42

    Hallo,

    gibt es eine Möglichkeit, mit Autoit herauszubekommen, ob ein Laufwerk eine SSD Disk oder eine herkömmliche Disk ist?
    Es gibt es ja mehrere SSD Hersteller, kann man diese Festplatten irgendwie erkennen?

    Vermutlich gibt es jetzt ne Menge Leute, die wissen wollen, wofür ich das brauche.
    Ich simuliere eine größere Anzahl an Messungen parallel. Dazu schaue ich, wieviel Cores der Rechner hat und lade die dann voll.
    Das ganze bringt aber nichts, wenn die Platte, die Cores nicht schnell genug beladen kann. Im Gegenteil: wenn die Platte nur noch am hin und her springen ist, dann wird alles wieder trotz Parallelisierung deutlich langsamer. Bei den SSD haben wir diese Beobachtungen nicht gemacht. Die sind schnell genug, um 16 Cores voll auszunutzen...

  • Sehr schneller Rechner - erkennen von mehreren Prozessoren

    • dost0011
    • 13. Juli 2012 um 18:58

    Hallo,

    ja vermutlich funktioniert das, wenn man es richtig macht.

    Wenn ich CPU0 und CPU1 abfrage, dann bekomme ich die richtige Antwort.
    Wenn ich spasseshalber CPU2 abfrage, dann bekomme ich sogar einen RuntimeError:

    >"C:\Program Files (x86)\AutoIt3\SciTE\..\autoit3.exe" /ErrorStdOut "E:\Sandbox\SYSB_FRM_SIT\sources\comps\ats\pc\_test\APOLLO\APOLLO.au3"
    E:\Sandbox\SYSB_FRM_SIT\sources\comps\ats\pc\_test\APOLLO\APOLLO_Load_Save_ini.au3 (334) : ==> Variable must be of type "Object".:
    return $oProc.NumberOfCores
    return $oProc^ ERROR

    Was kann ich dagegen tun?

Spenden

Jeder Euro hilft uns, Euch zu helfen.

Download

AutoIt Tutorial
AutoIt Buch
Onlinehilfe
AutoIt Entwickler
  1. Datenschutzerklärung
  2. Impressum
  3. Shoutbox-Archiv
Community-Software: WoltLab Suite™