mzehr.net: | Types | Modinfo | Source |
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. |
Type TNetClient | |
Description | Klasse 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) | |
Returns | True wenn die Verbindung zu Stande kommt, False wenn nicht. |
Description | Stellt eine Verbindung mit einem Server her. |
Information | host: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) | |
Description | Trennt die Verbindung mit dem Server. |
Information | disconnectTime:Int (Optional) Maximale Zeit in ms, zum Senden allfälliger letzter Nachrichten vor der Trennung. |
Method Flush() | |
Description | Sendet alle zwischengespeicherten Nachrichten so schnell wie möglich bzw. sofort. |
Information | Es 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) | |
Description | Sendet ein Packet an den Server. |
Information | packet: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) | |
Returns | Ein TNetClientEvent-Objekt, das beschreibt was passiert ist, oder Null wenn kein Ereignis stattfand. |
Description | Aktualisiert den Client (empfängt und sendet Nachrichten) |
Information | waitTime: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() | |
Description | Erstellt einen neuen, unverbundenen, Client. |
Type TNetClientEvent | |
Description | Stellt ein Ereignis dar, dass vom Client ausgelöst wurde. |
Constants Summary | |
---|---|
DATA , DISCONNECT |
Fields Summary | |
---|---|
Channel , Event , Packet |
Const DATA:Int | |
Description | Daten erhalten (Client: Vom Server | Server: Von einem bestimmten Client) |
Const DISCONNECT:Int | |
Description | Die Verbindung wurde getrennt (Client: Verbindung mit dem Server | Server: Verbindung mit einem bestimmten Client). |
Field Channel:Int | |
Description | Kanal auf dem die Nachricht empfangen wurde. |
Field Event:Int | |
Description | Ereignis das ausgelöst wurde (Wert = TNetClientEvent.CONNECT oder DATA) |
Field Packet:TNetPacket | |
Description | Packet das empfangen wurde (nur Verfügbar beim DATA-Ereignis) |
Type TNetPacket | |
Description | Stellt 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() | |
Description | Gibt den vom Paket verwendeten Speicher wieder frei. |
Information | Wird 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) | |
Description | Generiert eine ENet-Paket-Struktur. |
Information | Diese Methode wird intern verwendet und muss nicht manuell aufgerufen werden. |
Method Read:Int(buf:Byte Ptr, count:Int) | |
Returns | Anzahl effektiv gelesene Bytes. |
Description | Liest mehrere Bytes vom Paket in einen benutzerdefinierten Speicherbereich. |
Information | buf:Byte Ptr Speicherbereich in dem die gelesenen Daten abgelegt werden count:Int Anzahl Bytes die gelesen werden. |
Method ReadByte:Byte() | |
Description | Liest ein Byte vom Paket. |
Method ReadBytes:Int(buf:Byte Ptr, count:Int) | |
Returns | Anzahl effektiv gelesene Bytes. |
Description | Liest mehrere Bytes vom Paket in einen benutzerdefinierten Speicherbereich. |
Information | buf:Byte Ptr Speicherbereich in dem die gelesenen Daten abgelegt werden count:Int Anzahl Bytes die gelesen werden. |
Method ReadDouble:Double() | |
Description | Liest ein Double vom Paket. |
Method ReadFloat:Float() | |
Description | Liest ein Float vom Paket. |
Method ReadInt:Int() | |
Description | Liest ein Int vom Paket. |
Method ReadLine:String() | |
Description | Liest eine Zeile vom Paket. |
Method ReadLong:Long() | |
Description | Liest ein Long vom Paket. |
Method ReadObject:Object() | |
Description | Liest ein Objekt vom Paket (nicht getestet) |
Method ReadShort:Short() | |
Description | Liest ein Short vom Paket. |
Method ReadString:String() | |
Description | Liest einen String vom Paket. |
Information | Liest ein Int mit der Länge des String und anschliessend den String selber aus. |
Method Write(buf:Byte Ptr, count:Int) | |
Description | Schreibt mehrere Bytes in das Paket. |
Information | buf:Byte Ptr Speicherbereich aus dem die Daten ins Paket gelesen werden count:Int Anzahl Bytes die geschrieben/gelesen werden. |
Method WriteByte(value:Byte) | |
Description | Schreibt ein Byte in das Paket. |
Method WriteBytes(buf:Byte Ptr, count:Int) | |
Description | Schreibt mehrere Bytes in das Paket. |
Information | buf:Byte Ptr Speicherbereich aus dem die Daten ins Paket gelesen werden count:Int Anzahl Bytes die geschrieben/gelesen werden. |
Method WriteDouble(value:Double) | |
Description | Schreibt ein Double in das Paket. |
Method WriteFloat(value:Float) | |
Description | Schreibt ein Float in das Paket. |
Method WriteInt(value:Int) | |
Description | Schreibt ein Int in das Paket. |
Method WriteLine(value:String) | |
Description | Schreibt eine Zeile in das Paket. |
Method WriteLong(value:Long) | |
Description | Schreibt ein Long in das Paket. |
Method WriteObject(value:Object) | |
Description | Schreibt ein Objekt in das Paket (nicht getestet) |
Method WriteShort(value:Short) | |
Description | Schreibt ein Short in das Paket. |
Method WriteString(value:String) | |
Description | Schreibt ein String in das Paket. |
Information | Schreibt ein Int mit der Länge des Strings und anschliessend den String selber. |
Function Create:TNetPacket() | |
Description | Erstellt ein neues Datenpaket, in welches Daten geschrieben werden können (zum Versand) |
Function FromEnet:TNetPacket(p:Byte Ptr) | |
Description | Liest ein Datenpaket aus einer ENet-Struktur. |
Information | Die Funktion wird intern verwendet und muss nicht manuell aufgerufen werden. |
Type TNetPeer | |
Description | Klasse 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() | |
Description | Gibt die dem Client/Spieler zugewiesenen Daten zurück (siehe SetData) |
Method GetPeer:Byte Ptr() | |
Description | Gibt den ENet-Peer zurück, der diesem Client/Spieler zugrunde liegt. |
Information | Diese Methode wird intern vom Server verwendet und muss nicht manuell aufgerufen werden. |
Method SetData(value:Object) | |
Description | Legt für diesen Client/Spieler ein Daten-Objekt fest. |
Information | Dies 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) | |
Description | Erstellt einen neuen Client aufgrund eines ENet-Peers. |
Information | Diese Methode wird intern vom Server verwendet und muss nicht manuell aufgerufen werden. |
Type TNetServer | |
Description | Klasse 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) | |
Description | Sendet ein Packet an alle verbundenen Clients/Spieler. |
Information | 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 DisconnectClient(peer:TNetPeer) | |
Description | Sendet eine Disconnect-Nachricht an den Client/Spieler und trennt anschliessend die Verbindung wenn die Nachricht bestätigt wurde. |
Method DropClient(peer:TNetPeer) | |
Description | Trennt 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() | |
Description | Sendet alle zwischengespeicherten Nachrichten so schnell wie möglich bzw. sofort. |
Information | Es ist besser Update zu verwenden, da Update ebenfalls alle Nachrichten sendet und auch Nachrichten empfängt. |
Method GetClients:TList() | |
Description | Gibt die Liste mit allen verbundenen Clients/Spielern zurück. |
Information | Die 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) | |
Description | Sendet ein Packet an einen bestimmten Client/Spieler. |
Information | peer: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) | |
Description | Beendet die Ausführung des Servers. |
Information | shutdownTime: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) | |
Returns | Ein TNetServerEvent-Objekt, das beschreibt was passiert ist, oder Null wenn kein Ereignis stattfand. |
Description | Aktualisiert den Server (empfängt und sendet Nachrichten) |
Information | waitTime: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) | |
Returns | Entweder ein TNetServer-Objekt oder Null, falls der Server nicht gestartet werden konnte. |
Description | Erstellt einen neuen Server welcher auf der angegebenen IP-Adresse und Port auf eingehende Verbindungen wartet. |
Information | ip: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 | |
Description | Stellt ein Ereignis dar, dass vom Server ausgelöst wurde. |
Constants Summary | |
---|---|
CONNECT |
Fields Summary | |
---|---|
Peer |
Const CONNECT:Int | |
Description | Ein neuer Client hat sich mit dem Server verbunden. |
Field Peer:TNetPeer | |
Description | Client der sich verbunden/getrennt hat, oder von dem Daten empfangen wurden. |
Author | Michael Zehr (Jolinah) |
---|---|
License | Public Domain |
Credit | Lee Salzman (http://enet.bespin.org) |
History | 1.0 Release |