Home

Add

Edit

Without Linenumbers

Code in Textfield

Download

  1. '##############################################################################################################
    
  2. 'TEST-CLIENT für TSNE_V3
    
  3. '##############################################################################################################
    
  4. 
    
  5. 
    
  6. 
    
  7. '##############################################################################################################
    
  8. #INCLUDE Once "TSNE_V3.bi"                          'Die TCP Netzwerkbibliotek integrieren
    
  9. 
    
  10. 
    
  11. 
    
  12. '##############################################################################################################
    
  13. Dim G_Client As Uinteger                            'Eine Variable für den Client-Handel erstellen
    
  14. 
    
  15. 
    
  16. 
    
  17. '##############################################################################################################
    
  18. '   Deklarationen für die Empfänger Sub Routinen erstellen
    
  19. '   Nur dann nötig, wenn die Sub's unterhalb des aufrufs stehen.
    
  20. Declare Sub TSNE_Disconnected   (Byval V_TSNEID As Uinteger)
    
  21. Declare Sub TSNE_Connected      (Byval V_TSNEID As Uinteger)
    
  22. Declare Sub TSNE_NewData        (Byval V_TSNEID As Uinteger, Byref V_Data As String)
    
  23. 
    
  24. 
    
  25. 
    
  26. '##############################################################################################################
    
  27. Print "[INIT] Client..."                            'Programm beginnen
    
  28. Dim BV As Integer                                   'Variable für Statusrückgabe erstellen
    
  29. 
    
  30. 'Client Verbindung etablieren, Pointer der Empfänger Sub Routinen mit übergeben.
    
  31. 'Hier bauen wir eine verbindugn zu "www.google."de auf dem Port 80 auf.
    
  32. 'Die Create_Client Function wandelt selbstständig den Hostname (www.google.de) zu einer
    
  33. 'IP-Adresse um. Alternativ könnten wir auch die IP-Adresse von Google anstelle des Host's
    
  34. 'eintragen. Dies würde den Verbindungsaufbau nur minimal beschleunigen.
    
  35. 'Alternativ (optional) können wir am ende noch ein TimeOut angeben (Sekunden), nachdem
    
  36. 'der Funktionsaufruf zurückgegeben werden soll, falls die Verbindugn nicht zustande kommen sollte.
    
  37. 'Zu Beachten sei hier, das ein Wert von 60sek. noch im Normalem Bereich ist!!! und
    
  38. 'dieser nicht unterschritten werden sollte. Natürlich können auch kleinere Zeiten
    
  39. 'gewählt werden, jedoch sollte man diese mit bedacht ansetzen. Z.B. im Lan, wo typsiche
    
  40. 'Reaktionszeiten von 60sek. nicht der fall sind .)
    
  41. Print "[Connecting]"
    
  42. BV = TSNE_Create_Client(G_Client, "www.google.de", 80, @TSNE_Disconnected, @TSNE_Connected, @TSNE_NewData, 60)
    
  43. 
    
  44. '   Statusrückgabe auswerten
    
  45. If BV <> TSNE_Const_NoError Then
    
  46.     Print "[FEHLER] " & TSNE_GetGURUCode(BV)        'Fehler ausgeben
    
  47.     End -1                                          'Programmbeenden
    
  48. End If
    
  49. 
    
  50. Print "[OK]"                                        'Verbindung wurde erfolgreich hergestellt.
    
  51. 
    
  52. 'In unserem Fall senden wir im Connect Event automatisch einee HTTP-Anfrage welche eine
    
  53. 'Option enthält, die den Google-Server veranlast, nach dem senden der Antwort die Verbindugn
    
  54. 'mit uns automatisch zu beenden. Daher brauchen wir hier nicht manuell die Verbindung trennen
    
  55. 'und können so bequem auf das ende warten, bevor wir unser Programm beenden.
    
  56. Print "[WAIT] ..."                                  'Warte auf das ende der Verbindung (Disconnect)
    
  57. TSNE_WaitClose(G_Client)
    
  58. Print "[WAIT] OK"
    
  59. 
    
  60. Print "[END]"
    
  61. End                                                 'Anschliessend beenden wir unser Programm
    
  62. 
    
  63. 
    
  64. 
    
  65. '##############################################################################################################
    
  66. Sub TSNE_Disconnected(Byval V_TSNEID As Uinteger)   'Empfänger für das Disconnect Signal (Verbindung beendet)
    
  67. 'Wir geben nur kurz aus, das die Verbindung beendet wurde.
    
  68. 'Weitere aktionen sind nicht nötig. Wir haben ja nicht wirklich irgend was vorbereitet
    
  69. 'das wir jetzt wieder rückgängig machen müssten.
    
  70. Print "[DIS]";
    
  71. End Sub
    
  72. 
    
  73. 
    
  74. 
    
  75. '##############################################################################################################
    
  76. Sub TSNE_Connected(Byval V_TSNEID As Uinteger)      'Empfänger für das Connect Signal (Verbindung besteht)
    
  77. Print "[CON]";                                      'Nachdem die Verbindung vollständig aufgebaut wurde, geben wir dies aus, und bereiten das senden der Anfrage vor.
    
  78. 
    
  79. 'Daten zum senden vorbereiten (HTTP Protokoll Anfrage)
    
  80. Dim CRLF As String = Chr(13, 10)
    
  81. Dim D As String
    
  82. D += "GET / HTTP/1.0" & CRLF
    
  83. D += "Host: www.google.de" & CRLF
    
  84. D += "connection: close" & CRLF
    
  85. D += CRLF
    
  86. 
    
  87. 'Daten an die Verbindung senden
    
  88. Print "[SEND] ..."
    
  89. Print ">" & D & "<"
    
  90. Dim BV As Integer = TSNE_Data_Send(V_TSNEID, D)
    
  91. If BV <> TSNE_Const_NoError Then
    
  92.     Print "[FEHLER] " & TSNE_GetGURUCode(BV)        'Fehler ausgeben
    
  93. Else: Print "[SEND] OK"
    
  94. End If
    
  95. End Sub
    
  96. 
    
  97. 
    
  98. 
    
  99. '##############################################################################################################
    
  100. Sub TSNE_NewData (Byval V_TSNEID As Uinteger, Byref V_Data As String)   'Empfänger für neue Daten
    
  101. 'Nach dem senden sollte wir kurze zeit später die Antwort erhalten.
    
  102. 'Sie befindet sich in V_Data, wodurch wir sie bequem ausgeben können.
    
  103. 'Wenn alle Daten eingetroffen sind. beendet Google die Verbindugn mit uns. so wie wir es in der
    
  104. 'Anfrage verlangt haben. Anschliessend erhalten wir unser Disconnect Signal, gefolgt vom
    
  105. 'automatischen Verlassen der TSNE_WaitCLose Routine.
    
  106. Print "[NDA]: >" & V_Data & "<"
    
  107. End Sub
    
  108. 
    
  109.