GLBasic Benutzerhandbuch

Main sections

NET...

NETHOSTGAME(tcp_port%)
NETJOINGAME(server$, tcp_port%)



Mit der HOST Variante kann man einen neuen Server hosten. Die NET Befehle verwenden TCP.
TCP hat den Vorteil, dass das Ankommen der Nachrichten sichergestellt ist.
Der Wert tcp_port% gibt an, über welchen Port kommuniziert wird. Ein port=0 führt bei TCP zum Standartport 27910.

Hinweis: Ports unter 1024 sind als "privilegiert" bezeichnet und bieten wichtige Netzwerkfunktionalität wie Mail und Internet. Es ist daher anzuraten einen Port von 1024 bis 65535 zu verwenden (Maximum).
Man kann auch die Ports unter 1024 verwenden, wenn man z.B. einen Webbrowser oder Webserver schreiben möchte.

Unter Linux benötigt man root Rechte um die Ports 1-1024 zu öffnen.

Bei Verbindungsproblemen bitte immer sicherstellen, dass der Port nicht von einer Firewall blockiert wird.

NETSHUTDOWN


Dieser Befehl schließt alle NET... Verbindungen, gibt den Speicher wieder frei und beendet die Kommunikation.

ok% = NETISACTIVE()


Gibt zurück, ob die Netzwerkengine noch läuft. Wenn der Server schließt, wird auch die Engine beim Client beendet.

id% = NETCREATEPLAYER(name$)


Erstellt einen Spieler, der im Netzwerk bekannt gemacht wird. Nur über "Spieler" kann das Programm mit dem Server und anderen Clients kommunizieren.
Bei einem Fehler wird 0 zurückgegeben.

num% = NETNUMPLAYERS()


Dieser Befehl liefert die Anzahl der Spieler, die am
Server angemeldet sind.
Achtung: Dieser Befehl schickt eine Anfrage an den Server und ist daher nicht zwingend schnell.

quitid% = NETGETQUITPLAYER()


Gibt die ID eines Spielers zurück, der mit NETDELETEPLAYER() gelöscht wurde, oder verloren ging, weil der Client sich abgemeldet hat.
Dieser Befehl funktioniert nur am Server. Hat sich kein weiterer Spieler abgemeldet ist der Rückgabewert 0.
Wenn sich ein Spieler abgemeldet hat, sollte der Server eine Nachricht an alle Clients schicken um diese davon zu informieren. Man sollte die Funktion solange aufrufen, bis sie wieder 0 zurückgibt, für den Fall, dass meherere Spieler gleichzeitig entfernt wurden.

id% = NETGETPLAYERID(index%)


Man kann für alle Spieler in der Liste von NETNUMPLAYERS() die ID erfragen mit diesem Befehl.
Bei einem Fehler wird 0 zurückgegeben.

name$ = NETPLAYERNAME$(id%)


Hat man die ID eines Spielers, kann man mit diesem Befehl den dazugehörigen Anzeigenamen vom Server erfragen.

ip$ = NETGETIP$()


Hiermit bekommt man eine Liste von IP Addressen des aktuellen Programms, so dass man diese an andere weitersagen kann.
Die IPs sind durch "|" getrennt und können z.B. mit SPLITSTR getrennt werden.

NETALLOWJOINING OK%


Möchte man verhindern, dass weitere Clients sich anschließen oder bestehende Clients neue Player generieren, kann man hier mit NETALLOWJOINING FALSE diese Funktion am Server unterbinden.
Diese Funktion kann nur im Serverprogramm aufgerufen werden.
NETHOSTGAME stellt diesen Wert wieder auf TRUE.

NETDESTROYPLAYER id%


Dieser Befehl löscht einen Spieler vom Server. Der Befehl darf nur dort aufgerufen werden, wo der Spieler erzeugt wurde.


ok% = NETSENDMSG(id_from%, id_to%, text$)


Sendet eine Nachricht von Player id_from% an den Spieler id_to%. Ist id_to%=0, wird an alle verschickt. Der sendende Spieler erhält diese Nachricht dann jedoch nicht selbst nochmal.
text$ ist der zu versendende Text. Es sollte nicht länger als 1023 Zeichen lang sein.

msg$ = NETGETMSG$(id%)


Mit diesem Befehl holt man eine Nachricht für den Spieler id% ab. Ist keine Nachricht vorhanden, ist LEN(msg$)=0.

id% = NETGETSENDER()


Liefert die Player-ID des Senders der letzten Nachricht, die mit NETGETMSG$() geholt wurde.

err$ = NETGETLASTERROR$()


Gibt eine Fehlernummer, gefolgt von einer lesbaren Fehlermeldung aus, für die letzte nicht funktionierende Handlung.
Die Fehlernummern können mit ierr% = INTEGER(err$) in eine Zahl umgewandelt werden. Es ist nicht sichergestellt, dass die Fehlernummern auf allen Betriebssystemen identisch sind.

See also...