fb:porticula NoPaste
TSNE Code - Server
Uploader: | MOD |
Datum/Zeit: | 16.07.2010 23:10:22 |
#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 myServer = "Server"
Do
Sleep 300, 1
myServer.senden("Ich bin eine Nachricht")
Loop Until InKey = Chr(27)
myServer.beenden