| 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 |