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:

[ Win/Linux ][ Netzwerk ] TSNE_V2 / V3 - Netzwerk-Modul
Gehe zu Seite Zurück  1, 2, 3, 4, 5, 6, 7, 8, 9
 
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Projektvorstellungen
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  

Wie findet Ihr dieses Projekt?
Super
78%
 78%  [ 15 ]
Gut
10%
 10%  [ 2 ]
Mittelmässig
10%
 10%  [ 2 ]
Schlecht (Warum?)
0%
 0%  [ 0 ]
Scheisse (Warum?)
0%
 0%  [ 0 ]
Stimmen insgesamt : 19

Autor Nachricht
AxelNiedenhoff



Anmeldungsdatum: 24.03.2016
Beiträge: 8

BeitragVerfasst am: 24.03.2016, 17:17    Titel: Antworten mit Zitat

Danke für den Hinweis auf SNC! Und es ist auch schön zu wissen, dass es bei TSNE weitergeht … lächeln
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
ThePuppetMaster



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

BeitragVerfasst am: 25.03.2016, 01:35    Titel: Antworten mit Zitat

@AxelNiedenhoff ... bitte versuche einmal folgendes:

Suche in TSNE_V3.bi die Funktion
Code:
Private Function TSNE_Create_Client(ByRef ...


Gehe bis zur Zeile:
Code:
Dim BV as Integer = connect(TSock, CPtr(SOCKADDR Ptr, @TADDR), SizeOf(SOCKADDR))
If BV <> 0 Then


Hier wird anschließend per Präprozessor zwischen Linux und Windows unterschieden.
Code:

   #IF DEFINED(__FB_LINUX__)
      '...
   #ELSEIF DEFINED(__FB_WIN32__)
      '...
   #ENDIF


Im __FB_WIN32__ Abschnitt gilt es folgendes zu ändern:

Vorher:
Code:
   #ELSEIF DEFINED(__FB_WIN32__)
      FD_SET_(TSock, @TFDSet)
      With TTV
         .tv_sec = V_TimeoutSecs
         .tv_usec = 0
      End With
      FD_ZERO(@TFDSet)
      If select_(TSock + 1, 0, @TFDSet, 0, @TTV) = (INVALID_SOCKET or 0) Then Return TSNE_Const_CantConnectToRemote
      If Not (FD_ISSET(TSock, @TFDSet)) Then close_(TSock): Return TSNE_Const_CantConnectToRemote
      If TSock = INVALID_SOCKET Then Return TSNE_Const_CantConnectToRemote
   #ENDIF   


Nachher:
Code:
   #ELSEIF DEFINED(__FB_WIN32__)
      FD_ZERO(@TFDSet)
      FD_SET_(TSock, @TFDSet)
      With TTV
         .tv_sec = V_TimeoutSecs
         .tv_usec = 0
      End With
      If select_(TSock + 1, 0, @TFDSet, 0, @TTV) = (INVALID_SOCKET or 0) Then Return TSNE_Const_CantConnectToRemote
      If Not (FD_ISSET(TSock, @TFDSet)) Then close_(TSock): Return TSNE_Const_CantConnectToRemote
      If TSock = INVALID_SOCKET Then Return TSNE_Const_CantConnectToRemote
   #ENDIF   


Geändert wird die Position von FD_ZERO(...)


Ich kann das leider nur eingeschränkt testen, da ich auf die schnelle keine lauffähige fbc win 64bit version ans laufen bekomme, in der die Windows-Header vollständig vorhanden sind.


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



Anmeldungsdatum: 22.07.2007
Beiträge: 910
Wohnort: Austria

BeitragVerfasst am: 25.03.2016, 05:22    Titel: Antworten mit Zitat

Ich habs übrigens nicht mit 64-bit Windows sondern mit 64-bit Debian ausprobiert, wobei das Beispielprogramm nicht funktioniert hat (Fehler beim Verbindungsaufbau / Timeout).

Das Problem (oder: eines der Probleme) scheint also nicht Windows-only zu sein.
_________________
Aktuelle FreeBasic Builds, Projekte, Code-Snippets unter http://users.freebasic-portal.de/stw/
http://www.mv-lacken.at Musikverein Lacken (MV Lacken)
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
AxelNiedenhoff



Anmeldungsdatum: 24.03.2016
Beiträge: 8

BeitragVerfasst am: 29.03.2016, 20:02    Titel: Antworten mit Zitat

@ThePuppetMaster: Deine Änderungen führen noch nicht ganz zum Erfolg (wie sich das schon abgezeichnet hat, da ja das Problem auch unter Linux reproduzierbar ist). Allerdings verändert sich der Fehler: Vorher kam die »Can’t connect«-Meldung praktisch direkt nach dem Start des Beispielprogramms. Jetzt kommt sie nach einiger Wartezeit.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
ThePuppetMaster



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

BeitragVerfasst am: 06.04.2016, 02:16    Titel: Antworten mit Zitat

06.04.2016


  • In der Hostnameauflösung TSNE_INT_GetHostEnd wurde ein -1 durch ein Cast(ULong, -1) ersetzt um einen Auflösungsfehler auf 64Bit System zu beheben
  • In TSNE_Create_Client wurde im __FB_WIN32__ Zweig die Position von FD_ZERO vor FD_SET gesetzt. (War fälschlicherweise danach positioniert)



Aktuelle Version: https://www.freebasic-portal.de/porticula/tsnev3-bi-1826.html


Zu 1. Normalerweise sollte FBC alle Werte an den höchstwertigen Typen anpassen, was wohl aber in diesem Falle nicht ganz funktioniert hat. Daher die einfache Abhilfe mit dem direkten Cast, um noch vor dem DNS Request auf eine IP-Adresse zu prüfen.

Zu 2. FD_ZERO "leert" quasi den Type und deren Parameter. Dadurch, das diese Funktion NACH dem Setzen vom FD erfolgt, konnte die schlußendlich aufgerufene Select Funktion nur mit leeren Parametern arbeiten.


SRY: Hat mit dem Fix diesmal etwas länger gedauert als geplant. Arbeit geht derzeit leider einfach vor. verwundert


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



Anmeldungsdatum: 24.03.2016
Beiträge: 8

BeitragVerfasst am: 06.04.2016, 21:55    Titel: Antworten mit Zitat

Die neue Version funktioniert unter Win64. Danke!
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Keltin



Anmeldungsdatum: 23.08.2012
Beiträge: 10

BeitragVerfasst am: 18.11.2016, 10:57    Titel: Antworten mit Zitat

Hi,

ich bin bei der nutzung von TSNE_Ping auf ein Problem gestoßen.

Wenn ich V_ForceRAWPing auf 1 setze und mehrere Threads parallel auf verschiedene Hosts Pingen lasse, dann meldet ein Thread den Ping eines anderen Threads zurück.
Merkt man daran das zB ein Host im Internet der normalerweise ca 50ms Ping hat auch mal mit unter 1ms angegeben wird oder das ein Thread der ein Host anpingt der nicht erreichbar ist doch eine Antwort meldet.

Das tritt übrigens auch auf wenn man ohne Threads arbeitet und mehrere instanzen des Programms papallel startet.

Kennt einer den Grund für das Problem oder vielleicht sogar eine Lösung?

MfG
Keltin
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
ThePuppetMaster



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

BeitragVerfasst am: 18.11.2016, 12:06    Titel: Antworten mit Zitat

Hi Keltin,

vielen dank für den Hinweis. Das muss ich mir aber erstmal zur genüge führen. Scheint ein etwas komplexeres Problem zu sein.


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



Anmeldungsdatum: 23.08.2012
Beiträge: 10

BeitragVerfasst am: 18.11.2016, 15:28    Titel: Antworten mit Zitat

Danke schonmal für die Hilfe.
ich hab da mal auf Basis von deinem test_ping was vorbereitet:

Code:
#include once "TSNE_V3.bi"

Dim TRunTime as Double
Dim RV as Integer

Do Until InKey() = Chr(27)
RV = TSNE_Ping("127.0.0.1", TRunTime,1,1)

If RV <> TSNE_Const_NoError Then
   Print "[FEHLER] " & TSNE_GetGURUCode(RV)
End If

Print "Runtime: "; Str(TRunTime); " seconds"
Loop
End 0


Wenn der Code einmal mit einer erreichbaren IP und einer unerreichbaren IP kompiliert wird und beide Programme gleichzeitig laufen zeigen beide Pings an.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
ThePuppetMaster



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

BeitragVerfasst am: 18.11.2016, 15:38    Titel: Antworten mit Zitat

Hab da noch kurz zwei fragen:
* welches Betriebssystem verwendest du?
* welche FBC Version?


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



Anmeldungsdatum: 23.08.2012
Beiträge: 10

BeitragVerfasst am: 18.11.2016, 16:04    Titel: Antworten mit Zitat

Debian 8 (x64) und Windows 10 (x64)
FBC ist in beiden Fällen 1.05.0 (x86)
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
MOD
Fleißiger Referenzredakteur


Anmeldungsdatum: 10.09.2007
Beiträge: 990

BeitragVerfasst am: 27.11.2016, 12:08    Titel: Antworten mit Zitat

Nur kurz gefragt:
Kann es sein, dass TSNE sich nicht dafür eignet, es im Hauptprogramm UND einer darin dynamisch geladenen DLL zu verwenden? Habe das Problem, dass beim Laden der DLL das gesamte Programm hängen bleibt. Laut Debugger hat er Probleme mit TSNE_INT_Mutex_Master, bzw. er scheint sich in der Sub TSNE_INT_Thread_Master im äußeren Loop zu verlieren.
Irgendwelche Erfahrungen damit?

edit:
Es reicht im Plugin nur das Include auf die TSNE_V3.bi zu machen, den gesamten anderen Code habe ich per #if 0 ausgesetzt.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
ThePuppetMaster



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

BeitragVerfasst am: 28.11.2016, 14:11    Titel: Antworten mit Zitat

Hmm .. das ist ne gute Frage. Das habe ich so noch nie ausprobiert. Ich habe zwar n paar APPs, welche die TSNE in Libs nutzen, aber das von dir beschriebene Verhalten habe ich bis jetzt noch nie beobachten können.

MfG
TPM
_________________
[ WebFBC ][ OPS ][ DeltaLab's ][ ToOFlo ][ BGB-Movie ]
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
MOD
Fleißiger Referenzredakteur


Anmeldungsdatum: 10.09.2007
Beiträge: 990

BeitragVerfasst am: 28.11.2016, 14:17    Titel: Antworten mit Zitat

Ich teste aktuell mit fbc 1.05.0 x86 unter Windows (worauf DLL ja hinweist). Ich könnte noch unter Linux schauen, evtl verhält es sich da anders. Vielleicht muss ich tatsächlich versuchen, ein Minimalbeispiel zu bauen...
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Keltin



Anmeldungsdatum: 23.08.2012
Beiträge: 10

BeitragVerfasst am: 02.03.2017, 15:51    Titel: Antworten mit Zitat

Hi,

ich wollte nur mal fragen ob es schon irgend welche Erkenntnisse über das Problem in TSNE_Ping gibt?

MfG
Keltin
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 -> Projektvorstellungen Alle Zeiten sind GMT + 1 Stunde
Gehe zu Seite Zurück  1, 2, 3, 4, 5, 6, 7, 8, 9
Seite 9 von 9

 
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