Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
ALWIM

Anmeldungsdatum: 08.08.2006 Beiträge: 1048 Wohnort: Niederbayern
|
Verfasst am: 29.12.2014, 13:55 Titel: TSNE - UDP Pakete empfangen |
|
|
Ich stehe momentan vor einem kleinen Problem:
Ich verschicke UDP Pakete mit der TSNE Bibliothek, was alles wunderbar funktioniert. Der Empfenger (ein anderer PC) reagiert ohne Probleme auf die Nachrichten. Der andere PC verschickt aber auch Nachrichten! Wie kann ich die nun mit TSNE auslesen bzw. auswerten und dann weiterverarbeiten?
Im Programm sind folgende Zeilen Code drin:
Code: | SUB SENDEN
BV = TSNE_Data_Send(G_ClientTX, SendingString, , IP, 15731)
END SUB
SUB TSNE_NEWDATAUDP (BYVAL V_TSNEID AS UINTEGER, BYVAL V_IPA AS STRING, BYREF V_Data AS STRING) 'Empfänger für neue Daten (UDP)
'Beim UDP-Modus wird nicht nur die empfangenen Daten, sondern auch die IP des senders übergeben.
PRINT "[NDA]: >" & V_IPA & "<___>" & V_Data & "<"
END SUB |
Als was kommen die Daten dann an? Ich stehe da momentan etwas auf dem Schlauch. Vielleicht habe ich, aber bisher keine Daten gesendet bekommen? Das kann ich leider schwer überprüfen, da das andere Programm nicht von mir geschrieben wurde!
Wäre nett, wenn mir jemand helfen kann!
MFG
ALWIM _________________ SHELL SHUTDOWN -s -t 05 |
|
Nach oben |
|
 |
ThePuppetMaster

Anmeldungsdatum: 18.02.2007 Beiträge: 1839 Wohnort: [JN58JR]
|
Verfasst am: 29.12.2014, 14:46 Titel: |
|
|
Im UDP Modus kommen alle Daten in der TSNE_NEWDATAUDP Routine an, solange das UDP Paket an den entsprechenden Rechner mit der entsprechenden IP und dem entsprechendem Port gesendet wird.
192.168.0.1: Empfänger auf Port 1234
192.168.0.2: Sendet an 192.168.0.1 mit Port 1234 -> Paket kommt an
192.168.0.2: Sendet an 192.168.0.1 mit Port 4321 -> Paket kommt NICHT an
192.168.0.2: Sendet an 192.168.0.2 mit Port 1234 -> Paket kommt NICHT an
Der Sender muss also die IP-Adresse des empfängers als auch den Port kennen, an den er das Paket senden soll. Sonst kommt auch nix an.
MfG
TPM _________________ [ WebFBC ][ OPS ][ ToOFlo ][ Wiemann.TV ] |
|
Nach oben |
|
 |
ALWIM

Anmeldungsdatum: 08.08.2006 Beiträge: 1048 Wohnort: Niederbayern
|
Verfasst am: 29.12.2014, 15:33 Titel: |
|
|
ThePuppetMaster hat Folgendes geschrieben: | Im UDP Modus kommen alle Daten in der TSNE_NEWDATAUDP Routine an, solange das UDP Paket an den entsprechenden Rechner mit der entsprechenden IP und dem entsprechendem Port gesendet wird.
192.168.0.1: Empfänger auf Port 1234
192.168.0.2: Sendet an 192.168.0.1 mit Port 1234 -> Paket kommt an
192.168.0.2: Sendet an 192.168.0.1 mit Port 4321 -> Paket kommt NICHT an
192.168.0.2: Sendet an 192.168.0.2 mit Port 1234 -> Paket kommt NICHT an
Der Sender muss also die IP-Adresse des empfängers als auch den Port kennen, an den er das Paket senden soll. Sonst kommt auch nix an.
MfG
TPM |
Wie frage ich die ab? Wenn die in der "TSNE_NEWDATAUDP Routine" wirklich ankommen, dann müsste doch die "V_Data" dann Daten enthalten oder? Bei Abfragen ist die "V_Data" immer leer?
Mir bleibt wahrscheinlich nichts anderes übrig, als weiter zu testen, in der Hoffnung, dass es irgendwann einmal klappt!
Edit:
Kann bei dem anderen Gerät keinen Port eingeben! Nur eine IP-Adresse
Mfg
ALWIM _________________ SHELL SHUTDOWN -s -t 05 |
|
Nach oben |
|
 |
ThePuppetMaster

Anmeldungsdatum: 18.02.2007 Beiträge: 1839 Wohnort: [JN58JR]
|
Verfasst am: 29.12.2014, 15:38 Titel: |
|
|
Was heist abfragen ... diese Routine wird immer dann ausgelöst, wenn ein neues UDP Paket empfangen wird, auch wenn das Paket keine Daten enthält.
Das
Code: | PRINT "[NDA]: >" & V_IPA & "<___>" & V_Data & "<" |
wird durchgeführt, sobald die Routine von TSNE aufgerufen wird.
Wenn du also eine solche Zeile im Log siehst, kam ein Paket an. Unabhängig vom Inhalt (V_Data)
Zu beachten ist hier allerdings, das die Konsole nicht alle zeichen wiedergeben kann (z.B. Steuerzeichen), wenn solche in V_Data enthalten sind.
Sollten Pakete ankommen aber V_Data "scheinbar" leer sein, kannst du das auch mit folgendem Code Visual Prüfen.
Code: |
SUB TSNE_NEWDATAUDP (BYVAL V_TSNEID AS UINTEGER, BYVAL V_IPA AS STRING, BYREF V_Data AS STRING) 'Empfänger für neue Daten (UDP)
PRINT "[NDA]: >" & V_IPA & "<___>" & Len(V_Data) & "<"
Print "HEX: ";
For X as Integer = 1 to Len(V_Data)
Print Hex(V_Data[X - 1], 2) & " ";
Next
Print ""
END SUB
|
Diese "modifikation" zeigt dir dann jedes Empfangene Byte als HEX Wert an, und nicht mehr als Charakter, welche unter umständen vom Terminal Verschluckt werden. Z.B. Ein ESC (Chr 27) wird im Terminal ja nicht visuell angezeigt
MfG
TPM _________________ [ WebFBC ][ OPS ][ ToOFlo ][ Wiemann.TV ] |
|
Nach oben |
|
 |
ALWIM

Anmeldungsdatum: 08.08.2006 Beiträge: 1048 Wohnort: Niederbayern
|
Verfasst am: 29.12.2014, 18:28 Titel: |
|
|
Da wird gar nichts angezeigt, obwohl Daten gesendet werden (müssten).
Zumindest steht das so in der Beschreibung drin, die ich habe. Die besagt nämlich, dass Daten mindestens 1x zu Beginn bei der Anbindung gesendet werden. Vielleicht doch irgendwo ein Fehler meinerseits bzw. etwas übersehen?
Selbst wenn ich den gesamten Quellcode poste, so hilft er euch nicht weiter. Man kann ihn nur mit dem entsprechenden "PC" vernünftig testen!
Der "PC" sendet bei/auf Port 15730 an eine IP-Adresse nach Wahl. Also das was der PC mit dem Freebasicprogramm letztendlich hat.
Gruß
ALWIM _________________ SHELL SHUTDOWN -s -t 05 |
|
Nach oben |
|
 |
RockTheSchock
Anmeldungsdatum: 04.04.2007 Beiträge: 138
|
Verfasst am: 30.12.2014, 15:49 Titel: |
|
|
Evt. ein Firewall problem? |
|
Nach oben |
|
 |
ALWIM

Anmeldungsdatum: 08.08.2006 Beiträge: 1048 Wohnort: Niederbayern
|
Verfasst am: 31.12.2014, 03:54 Titel: |
|
|
RockTheSchock hat Folgendes geschrieben: | Evt. ein Firewall problem? |
So etwas in der Art war es gewesen! Zumindest konnte ich das Problem beheben. Man kann bei dem Gerät einstellen, wieviel gesendet und wohin gesendet wird. Andere Einstellung genommen und schon funktionierte es! Steht ja auch nirgends, welche Einstellung man für so einen Anwendungsfall nehmen muss! _________________ SHELL SHUTDOWN -s -t 05 |
|
Nach oben |
|
 |
|