fb:porticula NoPaste
TSNE Code - Client
| Uploader: |  MOD | 
| Datum/Zeit: | 16.07.2010 23:10:47 | 
#Include Once "TSNE_V3.bi"
Dim Shared As Integer partnerID
Type connectionType
    As UInteger G_Server, G_Client
    As Integer isServer
    As String IP
    Declare Constructor(Typ As String)
    Declare Destructor
    Declare Sub hosten
    Declare Sub connecten
    Declare Sub beenden
    Declare Sub senden(Message As String)
End Type
'Subs für TSNE-Kommunikation
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, ByVal V_IPA as String)
Declare Sub TSNE_NewConnectionCanceled(ByVal V_TSNEID as UInteger, ByVal V_IPA as String)
Constructor connectionType(Typ As String)
    If Typ = "Server" Then
        isServer = 1
        hosten
    ElseIf Typ = "Client" Then
        IP = "127.0.0.1"
        connecten
    Else
        IP = Typ
        connecten
    EndIf
End Constructor
Destructor connectionType
    beenden
End Destructor
Sub connectionType.beenden
    If isServer Then
        TSNE_Disconnect(G_Server)   'Server beenden
        TSNE_WaitClose(G_Server)    'Warten bis Server beendet ist
    Else
        TSNE_Disconnect(G_Client)   'Client beenden
        TSNE_WaitClose(G_Client)    'Warten bis Client beendet ist
    EndIf
End Sub
Sub connectionType.hosten
    Dim BV As Integer
    BV = TSNE_Create_Server(G_Server, 9000, 1, @TSNE_NewConnection, @TSNE_NewConnectionCanceled)    'Server erstellen
    If BV = TSNE_Const_NoError Then
        Print "Server bereit"
    Else
        Print "Fehler: " & BV
    EndIf
End Sub
Sub connectionType.connecten
    Dim BV As Integer
    BV = TSNE_Create_Client(G_Client, IP, 9000, @TSNE_Disconnected, @TSNE_Connected, @TSNE_NewData) 'Client erstellen
    If BV = TSNE_Const_NoError Then
        Print "Suche Server"
    Else
        Print "Fehler: " & BV
    EndIf
End Sub
Sub connectionType.senden(Message As String)
    TSNE_Data_Send(partnerID, Message)
End Sub
Sub TSNE_Disconnected(ByVal V_TSNEID as UInteger)
    'Handling, wenn disconnected wird
    Print V_TSNEID & " wurde disconnectet"
End Sub
Sub TSNE_Connected(ByVal V_TSNEID as UInteger)
    'neue Verbindung wurde aufgebaut
    Print "Nun mit " & V_TSNEID & " verbunden"
    partnerID = V_TSNEID
End Sub
Sub TSNE_NewConnection(ByVal V_TSNEID as UInteger, ByVal V_RequestID as Socket, ByVal V_IPA as String)
    'Wenn versucht wird, eine neue Verbindung herzustellen
    'Nur wichtig für den Server
    Print "Ein Client versucht zu verbinden"
    Dim XNewTSNEID as UInteger
    Dim XReturnIPA as String
    'Akzeptieren der Verbindung
    TSNE_Create_Accept(V_RequestID, XNewTSNEID, XReturnIPA, @TSNE_Disconnected, @TSNE_Connected, @TSNE_NewData)
End Sub
Sub TSNE_NewConnectionCanceled(ByVal V_TSNEID as UInteger, ByVal V_IPA as String)
    'Verhalten, wenn abgelehnt wird
    Print "Verbindung wurde abgelehnt"
End Sub
Sub TSNE_NewData(ByVal V_TSNEID as UInteger, ByRef V_Data as String)
    'Hier kommen die Daten an.
    '
    'V_Data enthält dabei die Daten
    'Die ID zeigt, woher die Daten kommen
    'Bei der Verarbeitung ist zu beachten, dass wenn
    'schnell hintereinander Daten eingehen und diese
    'Sub sie nicht schnell genug verarbeiten kann,
    'gehen die Daten verloren
    Print V_Data & " ::kommt von:: " & V_TSNEID
End Sub
Dim As connectionType myClient = "Client"
Do
    Sleep 300, 1
    myClient.senden("Ich bin eine Nachricht")
Loop Until InKey = Chr(27)
myClient.beenden
	


			FreeBASIC-Nachrichten jetzt auch über Twitter erhalten. Follow us!



