Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht Das deutsche QBasic- und FreeBASIC-Forum
Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
 
FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen  RegistrierenRegistrieren
ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin
Zur Begleitseite des Forums / Chat / Impressum
Aktueller Forenpartner:

UDP-Server Frage

 
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu FreeBASIC.
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
pb



Anmeldungsdatum: 11.08.2020
Beiträge: 8

BeitragVerfasst am: 11.08.2020, 12:22    Titel: UDP-Server Frage Antworten mit Zitat

Hallo alle zusammen - ich suche nach einem einfachen UDP-Server für die Übermittlung von Hausinternen Messdaten von meinem Raspberry Pi zu meinem Windows-PC über das Netzwerk. Auf meinem Pi läuft UDP schon und ich kann die Daten mit meinem hercules Terminal per UDP empfangen. Ich möchte die Daten aber verarbeiten (Durchschnit berechnen etc.) und brauche dazu ein etwas komfortableres Frontend das ich mit FreeBasic erstellen möchte. Ich bin nun auf den untenstehenden Beispielcode gestossen. Leider ergibt sich bei der Kompilierung folgender Fehler:
Zitat:
C:\Program Files (x86)\FreeBASIC\FBIDETEMP.bas(20) error 41: Variable not declared, TSNE_NewConnection in 'RV = TSNE_Create_Server(G_Server_TSNEID, 80, 100, @TSNE_NewConnection, 0)'

Ich bin kein Basic Anfänger - habe aber bisher noch nie mit Netzwerkprogrammierung zu tun gehabt - das ist Neuland für mich! Wo trage ich bei dem Beispiel die IP-Adresse und den Port des Servers ein? Welches Tutorial muss ich mir anschauen um die Befehle und die Syntax zu verstehen?

Code:
#Include once "TSNE_V3.bi"
Dim G_Server_TSNEID as UInteger
Dim RV as Integer

Sub TSNE_Disconnected(ByVal V_TSNEID as UInteger)
Print "[Disconnected] TSNEID: "; V_TSNEID
End Sub


Sub TSNE_Connected(ByVal V_TSNEID as UInteger)
Print "[Connected] TSNEID: "; V_TSNEID
End Sub


Sub TSNE_NewData(ByVal V_TSNEID as UInteger, ByRef V_Data as String)
Print "[NewData] TSNEID: "; V_TSNEID; " Datenlänge: "; Len(V_Data)
End Sub


RV = TSNE_Create_Server(G_Server_TSNEID, 80, 100, @TSNE_NewConnection, 0)
If RV <> TSNE_Const_NoError Then
    Print "[FEHLER] " & TSNE_GetGURUCode(RV)
    End -1
End If


Do Until InKey() = Chr(27)
    Sleep 1, 1
Loop
TSNE_Disconnect(G_Server_TSNEID)
TSNE_WaitClose(G_Server_TSNEID)
End 0
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
nemored



Anmeldungsdatum: 22.02.2007
Beiträge: 4385
Wohnort: ~/

BeitragVerfasst am: 11.08.2020, 13:29    Titel: Re: UDP-Server Frage Antworten mit Zitat

pb hat Folgendes geschrieben:
Welches Tutorial muss ich mir anschauen um die Befehle und die Syntax zu verstehen?

Das ist tatsächlich eine gute Frage. lachen
Ich habe mich leider schon sehr lange nicht mehr mit TSNE beschäftigt (und war auch vorher nicht extrem erfolgreich, was aber vorwiegend an Multithreating-Problemen lag), habe aber vor einiger Zeit verschiedenes zusammengeschrieben, wo auch zu TSNE etwas dabei ist. Vielleicht hilft dir das weiter.
http://users.freebasic-portal.de/nemored/buch2D/basicbuch2D.pdf, Kapitel 15.2
_________________
Deine Chance beträgt 1:1000. Also musst du folgendes tun: Vergiss die 1000 und konzentriere dich auf die 1.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
ThePuppetMaster



Anmeldungsdatum: 18.02.2007
Beiträge: 1788
Wohnort: [JN58JR] DeltaLabs.de

BeitragVerfasst am: 21.08.2020, 08:30    Titel: Antworten mit Zitat

Hi @pb


bezüglich eines Tutorials zu TSNE findest du hier ein passendes:

https://www.freebasic-portal.de/tutorials/netzwerkprogrammierung-tsne-v3-60.html

Es beschreibt, wie TSNE grundsätzlich funktioniert und wie man damit umgeht.

UDP Seitig ist es im großen und ganzen ähnlich. Der einzigste unterschied zu TCP ist der aufbau und das beenden der Verbindung. Bei UDP gibt es keinen Auf udn Abbau. Nach dem erstellen ist es faktisch sofort bereit zum senden und empfangen.

Bitte beachte unbedingt die tatsache, das UDP Kommunikation keine sichere kommunikation ist, was Datenverlust betrifft. Es kann also sehr leicht passieren das die Nachrichten bzw. Gesendete Datenpakete verloren gehen! Wird zwar im Lokalem Netz (LAN) wohl nicht auftreten, kann aber dann entstehen, wenn so viel traffik im LAN herscht, das der Switch-Zwischenspeicher voll läuft. Dann kann der Switch auch pakete ignorieren, welche dadurch nicht mehr ausgeliefert werden. Der Sendende Computer merkt das nicht, und sendet dadurch das Paket nicht noch einmal. Bei TCP würde der Sendende Computer eine Antwort vom Empfänger erhalten, und wenn diese nach 60 nicht eintreffen würde, dann würde der sendende Computer erneut das paket senden.


Auf der Projektseite von TSNE findest du eine ganze Reihe von Beispielen (ganz unten) ...

https://www.freebasic-portal.de/projekte/tsne-11.html

... und die Beschreibung der API-Schnittstelle von TSNE.
https://www.freebasic-portal.de/porticula/apidoku-txt-1368.html


MfG
TPM
_________________
[ WebFBC ][ OPS ][ DeltaLab's ][ ToOFlo ][ BGB-Movie ]
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
pb



Anmeldungsdatum: 11.08.2020
Beiträge: 8

BeitragVerfasst am: 21.08.2020, 12:22    Titel: Antworten mit Zitat

Danke ThePuppetMaster - das ist hier wirklich ein tolles Forum mit freundlichen und hilfsbereiten Usern!!!
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu FreeBASIC. Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehe zu:  
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.

 Impressum :: Datenschutz