Buchempfehlung
Windows System Programming
Windows System Programming
Das Kompendium liefert viele interessante Informationen zur Windows-Programmierung auf Englisch. [Mehr Infos...]
FreeBASIC-Chat
Es sind Benutzer im FreeBASIC-Chat online.
(Stand:  )
FreeBASIC bei Twitter
Twitter FreeBASIC-Nachrichten jetzt auch über Twitter erhalten. Follow us!

fb:porticula NoPaste

Info
Info / Hilfe
Liste
Übersicht / Liste
Neu
Datei hochladen
Suche
Quellcode suchen
Download
Dateidownload

client_test.bas

Uploader:MitgliedThePuppetMaster
Datum/Zeit:31.01.2008 07:51:46

'##############################################################################################################
'TEST-CLIENT für TSNE Version 2
'##############################################################################################################



'##############################################################################################################
'   Die TCP Netzwerkbibliotek integrieren
#include once "TSNE_V2.bi"



'##############################################################################################################
'   Eine Variable für den Client-Handel erstellen
Dim G_Client as UInteger



'##############################################################################################################
'   Deklarationen für die Empfänger Sub Routinen erstellen
Declare Sub TSNE_Disconnected   (ByVal V_TSNEID as UInteger)
Declare Sub TSNE_Connected      (ByVal V_TSNEID as UInteger)
Declare Sub TSNE_NewData        (ByVal V_TSNEID as UInteger, ByRef V_Data as String)



'##############################################################################################################
'   Programm beginnen
Print "[INIT] Client..."
'   Variable für Statusrückgabe erstellen
Dim BV as Long
'   Client Verbindung etablieren, Pointer der Empfänger Sub Routinen mit übergeben.
'   Hier bauen wir eine verbindugn zu "www.google.de" auf dem Port 80 auf.
'   Die Create_Client Function wandelt selbstständig den Hostname (www.google.de) zu einer
'   IP-Adresse um. Alternativ könnten wir auch die IP-Adresse von Google anstelle des Host's
'   eintragen. Dies würde den Verbindungsaufbau nur minimal beschleunigen.
Print "[Connecting]"
BV = TSNE_Create_Client(G_Client, "www.google.de", 80, @TSNE_Disconnected, @TSNE_Connected, @TSNE_NewData)
'   Statusrückgabe auswerten
If BV = 0 Then
    'Verbiundung wurde erfolgreich hergestellt.
    Print "[OK]"
Else: Print "[FEHLER] " & TSNE_GetGURUCode(BV)
End if
Print "[WAIT] ..."
'   Warte auf das ende der Verbindung (Disconnect)
'   In unserem Fall senden wir im Connect Event automatisch einee HTTP-Anfrage welche eine
'   Option enthält, die den Google-Server veranlast, nach dem senden der Antwort die Verbindugn
'   mit uns automatisch zu beenden. Daher brauchen wir hier nicht manuell die Verbindung trennen
'   und können so bequem auf das ende warten, bevor wir unser Programm beenden.
TSNE_WaitClose(G_Client)
Print "[WAIT] OK"
'   Anschliessend beenden wir unser Programm-
Print "[END]"
End



'##############################################################################################################
'   Empfänger für das Disconnect Signal (Verbindung beendet)
Sub TSNE_Disconnected(ByVal V_TSNEID as UInteger)
'   Wir geben nur kurz aus, das die Verbindung beendet wurde.
'   Weitere aktionen sind nicht nötig. Wir haben ja nicht wirklich irgend was vorbereitet
'   das wir jetzt wieder rückgängig machen müssten.
Print "[DIS]";
End Sub



'##############################################################################################################
'   Empfänger für das Connect Signal (Verbindung besteht)
Sub TSNE_Connected(ByVal V_TSNEID as UInteger)
'   Nachdem die Verbindugn vollständig aufgebaut wurde, geben wir dies aus, udn bereiten das senden der Anfrage vor.
Print "[CON]";
'   Daten zum senden vorbereiten (HTTP Protokoll Anfrage)
Dim D as String
Dim CRLF as String
CRLF = Chr(13) & Chr(10)
D = D & "GET / HTTP/1.1" & CRLF
D = D & "Host: 192.168.0.1" & CRLF
D = D & "connection: close" & CRLF
D = D & CRLF
Print "[SEND] ..."
'   Daten an die Verbindung senden
TSNE_Data_Send(V_TSNEID, D)
Print "[SEND] OK"
End Sub



'##############################################################################################################
'   Empfänger für neue Daten
Sub TSNE_NewData (ByVal V_TSNEID as UInteger, ByRef V_Data as String)
'   Nach dem senden sollte wir kurze zeit später die Antwort erhalten.
'   Sie befindet sich in V_Data, wodurch wir sie bequem ausgeben können.
'   Wenn alle Daten eingetroffen sind. beendet Google die Verbindugn mit uns. so wie wir es in der
'   Anfrage verlangt haben. Anschliessend erhalten wir unser Disconnect Signal, gefolgt vom
'   automatischen Verlassen der TSNE_WaitCLose Routine.
Print "[NDA]: >" & V_Data & "<"
End Sub