|
Das deutsche QBasic- und FreeBASIC-Forum Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
|
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Wie findet Ihr dieses Projekt? |
Super |
|
80% |
[ 16 ] |
Gut |
|
10% |
[ 2 ] |
Mittelmässig |
|
10% |
[ 2 ] |
Schlecht (Warum?) |
|
0% |
[ 0 ] |
Scheisse (Warum?) |
|
0% |
[ 0 ] |
|
Stimmen insgesamt : 20 |
|
Autor |
Nachricht |
grindstone
Anmeldungsdatum: 03.10.2010 Beiträge: 1230 Wohnort: Ruhrpott
|
Verfasst am: 03.05.2021, 15:37 Titel: |
|
|
Vielen Dank für die schnelle Antwort.
Das "Leeren" von Strings kenne ich noch vom alten QBasic - Interpreter mit seiner 64kB - Speichergrenze. Wenn ich dort einen String dazu missbraucht habe, größere Datenmengen (portionsweise) zu übertragen oder zu bearbeiten, mußte ich ihn vor dem Laden der nächsten "Datenportion" auch auf "" setzen, sobald er größer war als die Hälfte des freien Speichers.
Gruß
grindstone _________________ For ein halbes Jahr wuste ich nich mahl wie man Proggramira schreibt. Jetzt bin ich einen! |
|
Nach oben |
|
|
ThePuppetMaster
Anmeldungsdatum: 18.02.2007 Beiträge: 1837 Wohnort: [JN58JR]
|
Verfasst am: 24.11.2023, 00:27 Titel: |
|
|
[ TIP ]
Aktuell arbeite ich mit UDP Nachrichten und möchte euch auf einen Trick aufmerksam machen, den ich nicht nicht in der DOKU von TSNE beschrieben habe, aber vieleicht sehr hilfreich sein könnte.
In meinem Fall geht es um folgendes. Ich habe ein Gerät, das auf Port 10024 auf UDP Nachrichten hört. Sende ich eine Nachricht an diesen Port, sendet das Gerät eine Antwort zurück. Die Antwort wird allerdings auf den Source-Port des Anfragenden gesendet.
Ein Beispiel:
1. PC Erzeugt eine Nachricht mit folgenden Parametern:
Ziel IP: 192.168.0.2
Ziel Port: 10024
Eigene IP: 192.168.0.1
Eigener Port: 52614
(Der "Eigene Port" wird zufällig erzeugt)
2. Gerät antwortet mit folgender Nachricht:
Ziel IP: 192.168.0.1
Ziel Port: 52614
Eigene IP: 192.168.0.2
Eigener Port: 10024
Normalerweise erzeugt man ein TSNE_Create_UDP_RX und ein ..._TX.
Das Problem ist jetzt, das man das RX auf eben diesen Port brauchen würde, der ja nicht bekannt ist, und beim Senden via dem TX sich auch ändern könnte.
Ein Trick, den ich nicht in der DOKU stehen habe ist, das man kein _TX erzeugt, sondern das _RX verwendet, um Daten zu senden. Dieses kann nicht nur als Empfänger dienen, sondern auch als Sender. Der Unterschied ist jedoch, das hier der eigentlich unbekannte Port, stativ fest steht, und vom Betriebssystem bereits sauber in unsere Anwendung zurück geroutet wird.
Sieht zwar Komisch aus, funzt aber 1a:
Code: | #Include Once "TSNE_V3.bi"
Sub TSNE_NewDataUDP(ByVal V_TSNEID as UInteger, ByVal V_IPA as String, ByRef V_Data as String)
Print "[NewData]: >" & V_IPA & "<___>" & V_Data & "<"
End Sub
Dim G_ClientRX as UInteger
Dim RV as Integer = TSNE_Create_UDP_RX(G_ClientRX, G_Port, @TSNE_NewDataUDP)
If RV <> TSNE_Const_NoError Then Print "[FEHLER] " & TSNE_GetGURUCode(RV): End -1
Dim RV as Integer = TSNE_Data_Send(G_ClientRX, "Nachricht", , "RemoteIPA", 12345)
If RV <> TSNE_Const_NoError Then Print "[FEHLER] " & TSNE_GetGURUCode(RV): End -1
TSNE_Disconnect(G_ClientRX)
TSNE_WaitClose(G_ClientRX)
End
|
MfG
TPM _________________ [ WebFBC ][ OPS ][ ToOFlo ][ Wiemann.TV ] |
|
Nach oben |
|
|
|
|
Du kannst keine Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum nicht antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen.
|
|