Buchempfehlung
Windows-Programmierung. Das Entwicklerhandbuch zur WIN32-API
Windows-Programmierung. Das Entwicklerhandbuch zur WIN32-API
"Der" Petzold, das über 1000 Seiten starke Standardwerk zum Win32-API - besonders nützlich u. a. bei der GUI-Programmierung in FreeBASIC! [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

server.bas

Uploader:MitgliedThePuppetMaster
Datum/Zeit:26.12.2007 03:15:50

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



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



'##############################################################################################################
'   Eine Variable für den Server-Handel erstellen
Dim G_Server 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)
Declare Sub TSNE_NewConnection  (ByVal V_TSNEID as UInteger, ByVal V_RequestID as Socket)



'##############################################################################################################
'   Programm beginnen
Print "[INIT] Setup..."
'   Variable für Statusrückgabe erstellen
Dim BV as Long
'   Server etablieren und Pointer der Empfänger Sub Routinen übergeben.
BV = TSNE_Create_Server(G_Server, 1234, 10, @TSNE_NewConnection)
'   Statusrückgabe auswerten
If BV = 0 Then
    Print "[OK]"
    Print "[WAIT] ..."
    TSNE_WaitClose(G_Server)
    Print "[WAIT] OK"
    Print "[END]"
Else: Print "[FEHLER] " & TSNE_GetGURUCode(BV)
End if
End



'##############################################################################################################
Sub TSNE_Disconnected (ByVal V_TSNEID as UInteger)
'   Empfänger für das Disconnect Signal (Verbindung beendet)
Print "[DIS] >" & V_TSNEID & "<"
End Sub



'##############################################################################################################
Sub TSNE_Connected (ByVal V_TSNEID as UInteger)
'   Empfänger für das Connect Signal (Verbindung besteht)
Print "[CON] >" & V_TSNEID & "<"
End Sub



'##############################################################################################################
Sub TSNE_NewConnection (ByVal V_TSNEID as UInteger, ByVal V_RequestID as Socket)
'   Empfänger für das NewConnection Signal (Neue Verbindung)
Dim TID as UInteger
Dim TIP as String
Print "[NCO] >" & V_TSNEID & "<___>" & V_RequestID & "<"
'   Neue Verbindungsanfrage akzeptieren, Verbindungs-ID und IP-Adresse hohlen, Sub Routinen übergeben
TSNE_Create_Accept(V_RequestID, TID, TIP, @TSNE_Disconnected, @TSNE_Connected, @TSNE_NewData)
'   IP-Adresse der neuen Verbindung ausgeben
Print "[NIP] >" & TIP & "<"
End Sub



'##############################################################################################################
Sub TSNE_NewData (ByVal V_TSNEID as UInteger, ByRef V_Data as String)
'   Empfänger für neue Daten
Print "[NDA] >" & V_TSNEID & "<___>" & V_Data & "<"
'Prüfen ob in Anfrage ein doppelter Zeilenumbruch vorhanden ist?
Dim CRLF as String
CRLF = Chr(13) & Chr(10)
If InStr(1, V_Data, CRLF & CRLF) > 0 Then
'   Zeilenumbruch wurde gefunden, HTTP Header erfolgreich empfangen
'   Zu sendende Daten vorbereiten
    Dim D as String
    D = "<html><head><title>blub</title></head><body>TSNE-Test-Server: OK [" & Str(V_TSNEID) & "]</body></html>"
'   HTTP Header und Daten senden
    TSNE_Data_Send(V_TSNEID, "HTTP/1.1 200 OK" & CRLF & "connection: close" & CRLF & CRLF & D)
'   Verbindung beenden
    TSNE_Disconnect(V_TSNEID)
End If
End Sub