mzehr.net: Types Modinfo Source  

Netzwerkmodul basierend auf enet (http://enet.bespin.org)

Types Summary

TNetClient Klasse zum Herstellen einer Verbindung mit einem Server.
TNetClientEvent Stellt ein Ereignis dar, dass vom Client ausgelöst wurde.
TNetPacket Stellt ein Datenpaket dar, in das Werte geschrieben, oder von dem Werte gelesen werden können.
TNetPeer Klasse die auf dem Server einen Client/Spieler repräsentiert.
TNetServer Klasse zum Betreiben eines Servers.
TNetServerEvent Stellt ein Ereignis dar, dass vom Server ausgelöst wurde.

Types

Type TNetClient
DescriptionKlasse zum Herstellen einer Verbindung mit einem Server.
Methods Summary
Connect Stellt eine Verbindung mit einem Server her.
Disconnect Trennt die Verbindung mit dem Server.
Flush Sendet alle zwischengespeicherten Nachrichten so schnell wie möglich bzw. sofort.
Send Sendet ein Packet an den Server.
Update Aktualisiert den Client (empfängt und sendet Nachrichten)
Functions Summary
Create Erstellt einen neuen, unverbundenen, Client.
Method Connect:Int(host:String, port:Int, connectTimeout:Int = 5000)
ReturnsTrue wenn die Verbindung zu Stande kommt, False wenn nicht.
DescriptionStellt eine Verbindung mit einem Server her.
Informationhost:String IP/Hostname des Servers port:Int Port des Servers connectTimeout:Int (Optional) Maximale Zeit in ms für die Verbindungsherstellung.
Method Disconnect(disconnectTime:Int = 2000)
DescriptionTrennt die Verbindung mit dem Server.
InformationdisconnectTime:Int (Optional) Maximale Zeit in ms, zum Senden allfälliger letzter Nachrichten vor der Trennung.
Method Flush()
DescriptionSendet alle zwischengespeicherten Nachrichten so schnell wie möglich bzw. sofort.
InformationEs ist besser Update zu verwenden, da Update ebenfalls alle Nachrichten sendet und auch Nachrichten empfängt.
Method Send(packet:TNetPacket, reliable:Int = False, channel:Int = 0, compressed:Int = False)
DescriptionSendet ein Packet an den Server.
Informationpacket:TNetPacket Das Packet/Die Daten die gesendet werden reliable:Int (Optional) Bestimmt ob das Packet zwingend ankommen muss (Standard: Nein, gut für Positions-Übermittlung etc.) channel:Int (Optional) Kanal über den das Packet gesendet wird (Standard: 0, Wichtige reliable-Nachrichten sollten über einen anderen Kanal gesendet werden als unwichtige Nachrichten, z.B. Kanal 1) compressed:Int (Optional) Bestimmt ob die Daten vor der Übermittlung komprimiert werden (Standard: Nein, lohnt sich nur bei sehr grossen Daten-Paketen, wie z.b. wenn man 100x100 Tiles in 1 Paket senden möchte).
Method Update:TNetClientEvent(waitTime:Int = 0)
ReturnsEin TNetClientEvent-Objekt, das beschreibt was passiert ist, oder Null wenn kein Ereignis stattfand.
DescriptionAktualisiert den Client (empfängt und sendet Nachrichten)
InformationwaitTime:Int (Optional) Zeit in ms die der Client auf Nachrichten wartet. (Standard = 0, das heisst wenn keine Nachrichten vorhanden sind, kehrt die Methode sofort zurück und wartet nicht weiter)
Function Create:TNetClient()
DescriptionErstellt einen neuen, unverbundenen, Client.

Type TNetClientEvent
DescriptionStellt ein Ereignis dar, dass vom Client ausgelöst wurde.
Constants Summary
DATA , DISCONNECT
Fields Summary
Channel , Event , Packet
Const DATA:Int
DescriptionDaten erhalten (Client: Vom Server | Server: Von einem bestimmten Client)
Const DISCONNECT:Int
DescriptionDie Verbindung wurde getrennt (Client: Verbindung mit dem Server | Server: Verbindung mit einem bestimmten Client).
Field Channel:Int
DescriptionKanal auf dem die Nachricht empfangen wurde.
Field Event:Int
DescriptionEreignis das ausgelöst wurde (Wert = TNetClientEvent.CONNECT oder DATA)
Field Packet:TNetPacket
DescriptionPacket das empfangen wurde (nur Verfügbar beim DATA-Ereignis)

Type TNetPacket
DescriptionStellt ein Datenpaket dar, in das Werte geschrieben, oder von dem Werte gelesen werden können.
Methods Summary
Destroy Gibt den vom Paket verwendeten Speicher wieder frei.
EnetPacket Generiert eine ENet-Paket-Struktur.
Read Liest mehrere Bytes vom Paket in einen benutzerdefinierten Speicherbereich.
ReadByte Liest ein Byte vom Paket.
ReadBytes Liest mehrere Bytes vom Paket in einen benutzerdefinierten Speicherbereich.
ReadDouble Liest ein Double vom Paket.
ReadFloat Liest ein Float vom Paket.
ReadInt Liest ein Int vom Paket.
ReadLine Liest eine Zeile vom Paket.
ReadLong Liest ein Long vom Paket.
ReadObject Liest ein Objekt vom Paket (nicht getestet)
ReadShort Liest ein Short vom Paket.
ReadString Liest einen String vom Paket.
Write Schreibt mehrere Bytes in das Paket.
WriteByte Schreibt ein Byte in das Paket.
WriteBytes Schreibt mehrere Bytes in das Paket.
WriteDouble Schreibt ein Double in das Paket.
WriteFloat Schreibt ein Float in das Paket.
WriteInt Schreibt ein Int in das Paket.
WriteLine Schreibt eine Zeile in das Paket.
WriteLong Schreibt ein Long in das Paket.
WriteObject Schreibt ein Objekt in das Paket (nicht getestet)
WriteShort Schreibt ein Short in das Paket.
WriteString Schreibt ein String in das Paket.
Functions Summary
Create Erstellt ein neues Datenpaket, in welches Daten geschrieben werden können (zum Versand)
FromEnet Liest ein Datenpaket aus einer ENet-Struktur.
Method Destroy()
DescriptionGibt den vom Paket verwendeten Speicher wieder frei.
InformationWird automatisch aufgerufen wenn ein Paket nicht mehr verwendet wird (GarbageCollector), kann aber auch manuell aufgerufen werden.
Method EnetPacket:Byte Ptr(enet_flags:Int = 0, compressed:Int = False)
DescriptionGeneriert eine ENet-Paket-Struktur.
InformationDiese Methode wird intern verwendet und muss nicht manuell aufgerufen werden.
Method Read:Int(buf:Byte Ptr, count:Int)
ReturnsAnzahl effektiv gelesene Bytes.
DescriptionLiest mehrere Bytes vom Paket in einen benutzerdefinierten Speicherbereich.
Informationbuf:Byte Ptr Speicherbereich in dem die gelesenen Daten abgelegt werden count:Int Anzahl Bytes die gelesen werden.
Method ReadByte:Byte()
DescriptionLiest ein Byte vom Paket.
Method ReadBytes:Int(buf:Byte Ptr, count:Int)
ReturnsAnzahl effektiv gelesene Bytes.
DescriptionLiest mehrere Bytes vom Paket in einen benutzerdefinierten Speicherbereich.
Informationbuf:Byte Ptr Speicherbereich in dem die gelesenen Daten abgelegt werden count:Int Anzahl Bytes die gelesen werden.
Method ReadDouble:Double()
DescriptionLiest ein Double vom Paket.
Method ReadFloat:Float()
DescriptionLiest ein Float vom Paket.
Method ReadInt:Int()
DescriptionLiest ein Int vom Paket.
Method ReadLine:String()
DescriptionLiest eine Zeile vom Paket.
Method ReadLong:Long()
DescriptionLiest ein Long vom Paket.
Method ReadObject:Object()
DescriptionLiest ein Objekt vom Paket (nicht getestet)
Method ReadShort:Short()
DescriptionLiest ein Short vom Paket.
Method ReadString:String()
DescriptionLiest einen String vom Paket.
InformationLiest ein Int mit der Länge des String und anschliessend den String selber aus.
Method Write(buf:Byte Ptr, count:Int)
DescriptionSchreibt mehrere Bytes in das Paket.
Informationbuf:Byte Ptr Speicherbereich aus dem die Daten ins Paket gelesen werden count:Int Anzahl Bytes die geschrieben/gelesen werden.
Method WriteByte(value:Byte)
DescriptionSchreibt ein Byte in das Paket.
Method WriteBytes(buf:Byte Ptr, count:Int)
DescriptionSchreibt mehrere Bytes in das Paket.
Informationbuf:Byte Ptr Speicherbereich aus dem die Daten ins Paket gelesen werden count:Int Anzahl Bytes die geschrieben/gelesen werden.
Method WriteDouble(value:Double)
DescriptionSchreibt ein Double in das Paket.
Method WriteFloat(value:Float)
DescriptionSchreibt ein Float in das Paket.
Method WriteInt(value:Int)
DescriptionSchreibt ein Int in das Paket.
Method WriteLine(value:String)
DescriptionSchreibt eine Zeile in das Paket.
Method WriteLong(value:Long)
DescriptionSchreibt ein Long in das Paket.
Method WriteObject(value:Object)
DescriptionSchreibt ein Objekt in das Paket (nicht getestet)
Method WriteShort(value:Short)
DescriptionSchreibt ein Short in das Paket.
Method WriteString(value:String)
DescriptionSchreibt ein String in das Paket.
InformationSchreibt ein Int mit der Länge des Strings und anschliessend den String selber.
Function Create:TNetPacket()
DescriptionErstellt ein neues Datenpaket, in welches Daten geschrieben werden können (zum Versand)
Function FromEnet:TNetPacket(p:Byte Ptr)
DescriptionLiest ein Datenpaket aus einer ENet-Struktur.
InformationDie Funktion wird intern verwendet und muss nicht manuell aufgerufen werden.

Type TNetPeer
DescriptionKlasse die auf dem Server einen Client/Spieler repräsentiert.
Methods Summary
GetData Gibt die dem Client/Spieler zugewiesenen Daten zurück (siehe SetData)
GetPeer Gibt den ENet-Peer zurück, der diesem Client/Spieler zugrunde liegt.
SetData Legt für diesen Client/Spieler ein Daten-Objekt fest.
Functions Summary
Create Erstellt einen neuen Client aufgrund eines ENet-Peers.
Method GetData:Object()
DescriptionGibt die dem Client/Spieler zugewiesenen Daten zurück (siehe SetData)
Method GetPeer:Byte Ptr()
DescriptionGibt den ENet-Peer zurück, der diesem Client/Spieler zugrunde liegt.
InformationDiese Methode wird intern vom Server verwendet und muss nicht manuell aufgerufen werden.
Method SetData(value:Object)
DescriptionLegt für diesen Client/Spieler ein Daten-Objekt fest.
InformationDies Kann verwendet werden um dem TNetPeer eine eigene Spieler-Objekt oder sonstige Daten zuzuweisen. Mittels TNetServer.GetClients() kann dann eine Liste von TNetPeers abgerufen werden und bei diesen TNetPeers wiederum die gespeicherten Daten abgerufen werden, mit TNetPeer.GetData()
Function Create:TNetPeer(peer:Byte Ptr)
DescriptionErstellt einen neuen Client aufgrund eines ENet-Peers.
InformationDiese Methode wird intern vom Server verwendet und muss nicht manuell aufgerufen werden.

Type TNetServer
DescriptionKlasse zum Betreiben eines Servers.
Methods Summary
Broadcast Sendet ein Packet an alle verbundenen Clients/Spieler.
DisconnectClient Sendet eine Disconnect-Nachricht an den Client/Spieler und trennt anschliessend die Verbindung wenn die Nachricht bestätigt wurde.
DropClient Trennt sofort die Verbindung mit einem Client. Der Client wird nicht benachrichtigt und merkt evtl. erst später (Timeout) dass die Verbindung gekappt wurde.
Flush Sendet alle zwischengespeicherten Nachrichten so schnell wie möglich bzw. sofort.
GetClients Gibt die Liste mit allen verbundenen Clients/Spielern zurück.
Send Sendet ein Packet an einen bestimmten Client/Spieler.
Shutdown Beendet die Ausführung des Servers.
Update Aktualisiert den Server (empfängt und sendet Nachrichten)
Functions Summary
Create Erstellt einen neuen Server welcher auf der angegebenen IP-Adresse und Port auf eingehende Verbindungen wartet.
Method Broadcast(packet:TNetPacket, reliable:Int = False, channel:Int = 0, compressed:Int = False)
DescriptionSendet ein Packet an alle verbundenen Clients/Spieler.
Informationpacket:TNetPacket Das Packet/Die Daten die gesendet werden reliable:Int (Optional) Bestimmt ob das Packet zwingend beim Spieler ankommen muss (Standard: Nein, gut für Positions-Übermittlung etc.) channel:Int (Optional) Kanal über den das Packet gesendet wird (Standard: 0, Wichtige reliable-Nachrichten sollten über einen anderen Kanal gesendet werden als unwichtige Nachrichten, z.B. Kanal 1) compressed:Int (Optional) Bestimmt ob die Daten vor der Übermittlung komprimiert werden (Standard: Nein, lohnt sich nur bei sehr grossen Daten-Paketen, wie z.b. wenn man 100x100 Tiles in 1 Paket senden möchte).
Method DisconnectClient(peer:TNetPeer)
DescriptionSendet eine Disconnect-Nachricht an den Client/Spieler und trennt anschliessend die Verbindung wenn die Nachricht bestätigt wurde.
Method DropClient(peer:TNetPeer)
DescriptionTrennt sofort die Verbindung mit einem Client. Der Client wird nicht benachrichtigt und merkt evtl. erst später (Timeout) dass die Verbindung gekappt wurde.
Method Flush()
DescriptionSendet alle zwischengespeicherten Nachrichten so schnell wie möglich bzw. sofort.
InformationEs ist besser Update zu verwenden, da Update ebenfalls alle Nachrichten sendet und auch Nachrichten empfängt.
Method GetClients:TList()
DescriptionGibt die Liste mit allen verbundenen Clients/Spielern zurück.
InformationDie Liste sollte nicht manuell verändert werden, das heisst kein Löschen oder Hinzufügen eines Spielers. Dazu sollten die DisconnectClient/DropClient-Methoden benutzt werden.
Method Send(peer:TNetPeer, packet:TNetPacket, reliable:Int = False, channel:Int = 0, compressed:Int = False)
DescriptionSendet ein Packet an einen bestimmten Client/Spieler.
Informationpeer:TNetPeer Der Client/Spieler an den die Nachricht gesendet wird packet:TNetPacket Das Packet/Die Daten die gesendet werden reliable:Int (Optional) Bestimmt ob das Packet zwingend beim Spieler ankommen muss (Standard: Nein, gut für Positions-Übermittlung etc.) channel:Int (Optional) Kanal über den das Packet gesendet wird (Standard: 0, Wichtige reliable-Nachrichten sollten über einen anderen Kanal gesendet werden als unwichtige Nachrichten, z.B. Kanal 1) compressed:Int (Optional) Bestimmt ob die Daten vor der Übermittlung komprimiert werden (Standard: Nein, lohnt sich nur bei sehr grossen Daten-Paketen, wie z.b. wenn man 100x100 Tiles in 1 Paket senden möchte).
Method Shutdown(shutdownTime:Int = 5000)
DescriptionBeendet die Ausführung des Servers.
InformationshutdownTime:Int (Optional) Maximale Zeit in ms in der es erlaubt ist vor dem Beenden noch die letzten Nachrichten an Clients zu senden.
Method Update:TNetServerEvent(waitTime:Int = 0)
ReturnsEin TNetServerEvent-Objekt, das beschreibt was passiert ist, oder Null wenn kein Ereignis stattfand.
DescriptionAktualisiert den Server (empfängt und sendet Nachrichten)
InformationwaitTime:Int (Optional) Zeit in ms die der Server auf Nachrichten wartet. (Standard = 0, das heisst wenn keine Nachrichten vorhanden sind, kehrt die Methode sofort zurück und wartet nicht weiter)
Function Create:TNetServer(ip:String, port:Int, maxConnections:Int)
ReturnsEntweder ein TNetServer-Objekt oder Null, falls der Server nicht gestartet werden konnte.
DescriptionErstellt einen neuen Server welcher auf der angegebenen IP-Adresse und Port auf eingehende Verbindungen wartet.
Informationip:String IP-Adresse auf der der Server läuft (Null, 127.0.0.1 oder localhost verwenden um jede lokale IP abzuhören) port:Int Port auf der der Server läuft (empfohlen: über 1000 und möglichst hoch, z.B. 50000) maxConnections:Int Anzahl maximaler Verbindungen/Spieler für den Server.

Type TNetServerEvent Extends TNetClientEvent
DescriptionStellt ein Ereignis dar, dass vom Server ausgelöst wurde.
Constants Summary
CONNECT
Fields Summary
Peer
Const CONNECT:Int
DescriptionEin neuer Client hat sich mit dem Server verbunden.
Field Peer:TNetPeer
DescriptionClient der sich verbunden/getrennt hat, oder von dem Daten empfangen wurden.

Module Information

AuthorMichael Zehr (Jolinah)
LicensePublic Domain
CreditLee Salzman (http://enet.bespin.org)
History1.0 Release