fb:porticula NoPaste
client_test.bas
Uploader: | ThePuppetMaster |
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