fb:porticula NoPaste
API_Doku.txt
Uploader: | ThePuppetMaster |
Datum/Zeit: | 18.10.2008 06:54:16 |
'##############################################################################################################
'##############################################################################################################
' TSNE_V3 - TCP Socket Networking [Eventing] Version: 3.0 (0.18.5)
'##############################################################################################################
'##############################################################################################################
' 2008 By.: /_\ DeltaLab's - Deutschland
' Autor: Martin Wiemann
'##############################################################################################################
'##############################################################################################################
' T S N E - V E R S I O N _ 3 - A P I - D O K U
'##############################################################################################################
'##############################################################################################################
' Legende / Wichtige Hinweise
'##############################################################################################################
' * Jede Funktion oder Sub beginnt immer mit 'TSNE_'.
' * Funktionen die mit 'TSNE_BW_' beginnen gehören zu den BlackWhite List Befehlen.
' * Parameter beginnen immer mit 'V_' oder 'R_'.
' Dabei zeit ein führendes 'V_' an das hier Daten übergeben werden müssen
' Ein führendes 'R_' zeigt an, das hier ein Wert von der Funktion / Sub eingetragen / gefüllt wird
' Bis auf einigen Ausnahmen (Siehe 'TSNE_IsClosed') liefert jede Funktion einen GURU-Code zurück.
' Alle Rückgaben können mit
'##############################################################################################################
' TCP-Befehle
'##############################################################################################################
'##############################################################################################################
Function TSNE_GetGURUCode (ByRef V_GURUID as Integer) as String
'- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
'Beschreibung: Wandelt einen Guru-Code in einen Englischen Beschreibungs-Text um
'Rückgabe: Liefert einen String mit dem Beschreibungstext zurück.
'- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
'V_GURUID = Ein gültiger GURU-Code
'##############################################################################################################
Function TSNE_Stats (ByRef V_TSNEID as UInteger, ByRef R_RX as ULongInt, ByRef R_TX as ULongInt) as Integer
'- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
'Beschreibung: Liefert eine kleine Statistik eines TSNE.
'- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
'V_TSNEID = Hier muss eine gültige TSNE-ID übergeben werden.
'R_RX = Die Funktion trägt hier die anzahl Bytes ein welche auf dieser TSNE Empfangen wurden.
'R_TX = Anzahl Bytes die versand wurden.
'##############################################################################################################
Function TSNE_Disconnect (ByRef V_TSNEID as UInteger) as Integer
'- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
'Beschreibung: Beendet eine bestehende Verbindung / geöffneten Server bzw. Client.
'- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
'V_TSNEID = Hier muss eine gültige TSNE-ID übergeben werden.
'##############################################################################################################
Function TSNE_Create_Server (ByRef R_TSNEID as UInteger, ByRef V_Port as UShort, ByRef V_MaxSimConReq as UShort = 10, ByVal V_Event_NewConPTR as Any Ptr, ByVal V_Event_NewConCancelPTR as Any Ptr) as Integer
'- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
'Beschreibung: Erstellt einen neuen TCP-Server
'- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
'R_TSNEID = Enthält nach dem Aufruf die TSNEID dieser neuen Verbindung.
'V_Port = Muss einen Port zwischen 1 und 65535 enthalten, auf dem nach neuen Anfragen 'gelauscht' werden soll
'V_MaxSimConReq = Muss einen Wert zwischen 1 und 4096 enthalten. Dieser Wert gibt an wie viele Verbindungen gleichzeitig
' in der 'Warteschlange' gehalten, bevor weitere Anfragen automatisch abgelehnt werden sollen.
' Ein Typischer Wert liegt bei 10.
'V_Event_NewConPTR = Hier muss ein Pointer auf eine 'NewConnection' Sub angegeben werden. (Siehe: Callback)
'V_Event_NewConCancelPTR = (Optional) Hier kann ein Pointer auf eine 'NewConnectionCancel' Sub angegeben werden. (Siehe: Callback)
'##############################################################################################################
Function TSNE_Create_Client (ByRef R_TSNEID as UInteger, ByVal V_IPA as String, ByVal V_Port as UShort, ByVal V_Event_DisconPTR as Any Ptr, ByVal V_Event_ConPTR as Any Ptr, ByVal V_Event_NewDataPTR as Any Ptr, ByVal V_TimeoutSecs as UInteger = 60) as Integer
'- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
'Beschreibung: Erstellt eine neue Client-Verbindung
'- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
'R_TSNEID = Enthält nach dem Aufruf die TSNEID dieser neuen Verbindung.
'V_IPA = Hier muss eine gültige IP-Adresse übergeben werden.
'V_Port = Muss einen Port zwischen 1 und 65535 enthalten, auf dem nach neuen Anfragen 'gelauscht' werden soll
'V_Event_DisconPTR = (Optional) Hier kann ein Pointer auf eine 'Disconnect' Sub angegeben werden. (Siehe: Callback)
'V_Event_ConPTR = (Optional) Hier kann ein Pointer auf eine 'Connected' Sub angegeben werden. (Siehe: Callback)
'V_Event_NewDataPTR = (Optional) Hier kann ein Pointer auf eine 'NewData' Sub angegeben werden. (Siehe: Callback)
'V_TimeoutSecs = Ein Wert der angibt wann die Funktion zwangsweise beendet wird, falls ein Verbindungsaufbau nicht möglich ist.
' Ein typischer Wert ist 60 (Sekunden)
'##############################################################################################################
Function TSNE_Create_Accept (ByVal V_RequestID as Socket, ByRef R_TSNEID as UInteger, ByRef R_IPA as String, ByVal V_Event_DisconPTR as Any Ptr, ByVal V_Event_ConPTR as Any Ptr, ByVal V_Event_NewDataPTR as Any Ptr) as Integer
'- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
'Beschreibung: Akzeptiert und erstellt eine neue Client-Verbindung welche durch ein 'NewConnection' ausgelöst wurde.
'- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
'V_RequestID = Hier muss eine von einer 'NewConnection' Sub übergebene V_RequestID angegeben werden.
'R_TSNEID = Enthält nach dem Aufruf die TSNEID dieser neuen Verbindung.
'R_IPA = Liefert die IP-Adresse der neuen Verbindung zurück.
'V_Event_DisconPTR = (Optional) Hier kann ein Pointer auf eine 'Disconnect' Sub angegeben werden. (Siehe: Callback)
'V_Event_ConPTR = (Optional) Hier kann ein Pointer auf eine 'Connected' Sub angegeben werden. (Siehe: Callback)
'V_Event_NewDataPTR = (Optional) Hier kann ein Pointer auf eine 'NewData' Sub angegeben werden. (Siehe: Callback)
'##############################################################################################################
Function TSNE_Data_Send (ByRef V_TSNEID as UInteger, ByRef V_Data as String, ByRef R_BytesSend as UInteger = 0) as Integer
'- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
'Beschreibung: Sendet Daten an eine Client-Verbindung
'- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
'V_TSNEID = Hier muss eine gültige TSNE-ID übergeben werden.
'V_Data = Enthält die Daten welche übertragen werden sollen.
'R_BytesSend = Enthält die Anzahl übertragener Bytes.
'##############################################################################################################
Sub TSNE_WaitClose (ByRef V_TSNEID as UInteger)
'- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
'Beschreibung: Beendet den Aufruf erst, wenn die Verbindung (Client oder Server) beendet wurde. (Disconnect)
'- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
'V_TSNEID = Hier muss eine gültige TSNE-ID übergeben werden.
'##############################################################################################################
Function TSNE_IsClosed (ByRef V_TSNEID as UInteger) as UByte
'- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
'Beschreibung: Prüft ob eine Verbindung noch aktiv ist, oder nicht
'Rückgabe: 0 = Verbindung existiert nicht länger / hat noch nie, oder wurde beendet. 1 = Verbindung besteht noch.
'- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
'V_TSNEID = Hier muss eine gültige TSNE-ID übergeben werden.
'##############################################################################################################
' Black/White-List Befehle
'##############################################################################################################
'##############################################################################################################
Function TSNE_BW_SetEnable (ByVal V_Server_TSNEID as UInteger, V_Type as TSNE_BW_Mode_Enum) as Integer
'- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
'Beschreibung: Deaktiviert / Aktiviert eine Black/White-List
'- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
'V_Server_TSNEID = Hier muss eine gültige TSNE-ID eines Servers übergeben werden.
'V_Type = Gibt an welcher Typus von Liste verwendet werden soll.
' TSNE_BW_Mode_None = Keine List verwenden. (Deaktiviert)
' TSNE_BW_Mode_Black = BlackList. Alle IP-Adressen auf dieser Liste werden Ignoriert.
' TSNE_BW_Mode_White = WhiteList. Alle IP-Adressen auf dieser Liste werden Akzeptiert.
'##############################################################################################################
Function TSNE_BW_GetEnable (ByVal V_Server_TSNEID as UInteger, R_Type as TSNE_BW_Mode_Enum) as Integer
'- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
'Beschreibung: Liest den Status der Black/White-List
'- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
'V_Server_TSNEID = Hier muss eine gültige TSNE-ID eines Servers übergeben werden.
'R_Type = Enthält nach dem Funktionsaufruf den Typus der Liste. (Siehe: TSNE_BW_SetEnable)
'##############################################################################################################
Function TSNE_BW_Clear (ByVal V_Server_TSNEID as UInteger) as Integer
'- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
'Beschreibung: Leert die BW_Liste vollständig. (Alle IP-Adressen werden gelöscht)
'- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
'V_Server_TSNEID = Hier muss eine gültige TSNE-ID eines Servers übergeben werden.
'##############################################################################################################
Function TSNE_BW_Add (ByVal V_Server_TSNEID as UInteger, V_IPA as String) as Integer
'- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
'Beschreibung: Fügt eine IP-Adresse zur Liste hinzu.
'- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
'V_Server_TSNEID = Hier muss eine gültige TSNE-ID eines Servers übergeben werden.
'V_IPA = Muss eine Gültige IP-Adresse enthalten.
'##############################################################################################################
Function TSNE_BW_Del (ByVal V_Server_TSNEID as UInteger, V_IPA as String) as Integer
'- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
'Beschreibung: Löscht eine IP-Adresse von der BW_Liste.
'- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
'V_Server_TSNEID = Hier muss eine gültige TSNE-ID eines Servers übergeben werden.
'V_IPA = Muss eine Gültige IP-Adresse enthalten.
'##############################################################################################################
Function TSNE_BW_List (ByVal V_Server_TSNEID as UInteger, ByRef R_IPA_List as TSNE_BWL_Type Ptr) as Integer
'- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
'Beschreibung: Gibt eine Liste aller IP-Adressen in der BW_List zurück. Die Liste ist eine 'TSNE_BWL_Type' Linked List.
'- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
'V_Server_TSNEID = Hier muss eine gültige TSNE-ID eines Servers übergeben werden.
'R_IPA_List = Gibt den Ersten Pointer auf eine TSNE_BWL_Type Linked List zurück welche die IP-Adressen enthält.
' Muss selbstständig DeAllocated werden!!!!! Sonst entstehen Speicher-Leaks!!!!!
'##############################################################################################################
' Strukturen / Konstanten
'##############################################################################################################
'##############################################################################################################
Private Type TSNE_BWL_Type
V_Next as TSNE_BWL_Type Ptr
V_Prev as TSNE_BWL_Type Ptr
V_IPA as String
End Type
'- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
'Beschreibung: Daten-Struktur (Linked List) für die Black/White Liste.
'- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
'V_Next = Pointer auf den Nächsten Eintrag in der Liste.
'V_Prev = Pointer auf einen vorherigen Eintrag in der Liste
'V_IPA = IP-Adresse
'##############################################################################################################
Enum TSNE_BW_Mode_Enum
TSNE_BW_Mode_None = 0
TSNE_BW_Mode_Black = 1
TSNE_BW_Mode_White = 2
End Enum
'- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
'Beschreibung: Typus der Black/White-Liste
'- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
'TSNE_BW_Mode_None = Keine Liste verwenden. (Alle Anfragen werden akzeptiert)
'TSNE_BW_Mode_Black = Schwarze-Liste. IP-Adresse auf dieser Liste werden automatisch abgewiesen.
'TSNE_BW_Mode_White = Weiße-Liste. IP-Adressen auf dieser Liste werden nicht abgeweisen.
'##############################################################################################################
'TSNE_Const_UnknowError = Unbekannter Fehler.
'TSNE_Const_NoError = Kein Fehler.
'TSNE_Const_UnknowEventID = Unbekannte EventID.
'TSNE_Const_NoSocketFound = 'V_SOCKET' enthält keine gültige Socket-ID.
'TSNE_Const_CantCreateSocket = Konnte Socket nicht erstellen.
'TSNE_Const_CantBindSocket = Konnte Socket nicht an Port binden.
'TSNE_Const_CantSetListening = Konnte Socket nicht in den 'Listening'-Mode versetzen.
'TSNE_Const_SocketAlreadyInit = Socket wurde bereits Inizialisiert.
'TSNE_Const_MaxSimConReqOutOfRange = 'V_MaxSimConReq' ist auserhalb des gültigen Bereichs.
'TSNE_Const_PortOutOfRange = 'V_Port' ist auserhalb des gültigen Bereichs
'TSNE_Const_CantResolveIPfromHost = Konnte Host-Name nicht in IP-Adresse umwandeln
'TSNE_Const_CantConnectToRemote = Konnte keine Verbindung zur Gegenstelle aufbauen
'TSNE_Const_TSNEIDnotFound = 'V_TSNEID' wurde nicht gefunden.
'TSNE_Const_MissingEventPTR = Vermisse 'Event_...' Pointer.
'TSNE_Const_IPAalreadyInList = IP-Adresse ist bereits auf der Liste.
'TSNE_Const_IPAnotInList = IP-Adresse ist nicht in der Liste.
'TSNE_Const_ReturnErrorInCallback = Unbekannter Fehler in Internem Aufruf einer Funktion.
'TSNE_Const_IPAnotFound = IP-Adresse wurde nicht gefunden.
'TSNE_Const_ErrorSendingData = Fehler bei der Datenübertragung. Eventuell wurde die Verbindung getrennt.
'TSNE_Const_UnknowGURUcode = Unbekannter GURU-Code
'TSNE_Const_TSNENoServer = 'V_Server_TSNEID' ist kein Server