C o m p u t e r   C h e s s   U t i l i t i e s

A.  netChess

Mit diesem Hilfsprogramm können Benutzeroberflächen mit Schachprogrammen auf entfernten Rechnern kommunizieren, die über Netzwerk (TCP/IP) miteinander verbunden sind.


Funktionsweise:

1. Start des Programms 'engineServer' auf dem Computer, der die Engines zur Verfügung stellt

Auf den Zielrechner (z.B. Linux_1 mit IP-Adresse:192.168.2.24) ist das Programm 'engineServer' aufzurufen.
In der Spalte Name ist der Name der Engine einzutragen (z.B.  Crafty Spezial). In der Spalte Port ist eine für diese Rechner eindeutige Nummer größer als 1024 einzugeben. In der Spalte Datei ist der Pfad zum Schachprogramm einzutragen. Falls gewünscht, können weitere Einträge erfolgen. Programme, die gestartet werden sollen, werden in der ersten Spalte mit einem Häkchen versehen.

Picture engineServer

Die Eingaben werden in der Datei engineServer.rc abgespeichert. Nach Betätigung des Start-Knopfes werden die markierten Programme aktiv.
Die Spalten der Tabelle können durch Drücken der Kopfspalte sortiert werden. Zum Löschen einer Zeile die rechte Maustaste drücken.
Falls es Probleme mit einer Firewall gibt (das Programm versucht zur Ermittlung der IP-Adresse eine temporäre Verbindung auf Port 22 auf sich selbst herzustellen), so ist in der Datei engineServer.rc ein Eintrag mit dem Rechnernamen oder der IP-Adresse vorzunehmen. Z.B. host 192.168.2.5
Unter Windows erhält man die IP-Adresse auf der Konsole mit dem Kommando ipconfig.

2. Start des Programms 'engineClient' auf dem Rechner auf dem die GUI läuft

Es fordert zur Eingabe des Namens des Schachprogramms auf und verlangt den Rechnername (oder IP-Adresse) des entfernten Rechners, sowie eine eindeutige Portnummer für diese Verbindung, die größer als 1000 sein muss. Damit wird eine Kopie dieser Datei mit dem Namen 'netNAME(.exe)' und eine Konfigurationsdatei 'netNAME.rc' erzeugt. Sollen weitere Programme von diesem Rechner eingebunden werden, so ist unbedingt eine andere Portnummer zu verwenden.
Z.B.:

Picture engineClient


Für eine Verbindung mittels 'ssh'  besteht die Möglichkeit statt der Portnummer ein Kommando einzugeben, z.B.:
Linux:            ssh UserName@RemoteHost /Verzeichnis/zur/Engine/prog
Windows:      c:/winnt/system32/plink.exe UserName@RemoteHost -ssh -pw passwort /Verzeichnis/zur/Engine/prog

Ich empfehle das Kommando auf der Konsole zuerst auszuprobieren. Eine Unterstützung bei der Konfiguration von 'ssh'  kann ich leider nicht geben. Hier findet man weiter Infos zu plink.exe.

Internationalisierung:
Die Programme können mit Hilfe der Sprach-Datei lang.msg internationalisiert werden. Dazu muss der deutsche Text durch die Alternative ersetzt werden.
Z.B. für Französisch eine Datei lang.msg in fr.msg umbenennen und ersetze
mcset de "Error message" \
                 "Fehlermeldung"
durch

mcset fr "Error message" \
                "Message d'erreur"

usw.


3. Start der Benutzeroberfläche

In die Benutzeroberfläche werden nun die zuvor generierten Prozeduren 'netNAME.exe' eingebunden.
Sie werden dem gleichen Übertragungsprotokoll (UCI/Winboard) wie die Engine angesteuert. Erfolgreich getestet mit den Benutzeroberflächen Arena und Fritz 7 (UCI).
Voraussetzung: Zwischen den Rechnern besteht Netzverbindung (testen mit ping) und die Portnummern sind verfügbar.

4. Ausblick

Damit können nicht nur Betriebsystemgrenzen (Linux, Mac, Windows) überwunden werden, auch können die Programme unabhängig voneinander ihre Rechenkapazität nutzen (pondern). So ist es möglich, dass auf dem Rechner 1 die Benutzeroberfläche und die erste Engine laufen und auf dem Rechner 2 die zweite Engine. Es können nicht nur Zweikämpfe, sondern ganze Turniere in gewohnter Art durchgeführt werden.

5. Hinweis

Mit diesem Ansatz können nicht nur Schachprogramme über das Netzwerk gestartet werden, sondern auch andere Programme, die über stdin/stdout arbeiten.

6. Bekannte Schwächen

Das Programm ist nicht gegen bestimmte Signale (z.B. SIGINT) resistent.

7. Geschichte

engineServer (1.1)


engineClient (1.0)
engineServer (1.0)


engineClient (0.9)
engineServer (0.9)

8. Haftung

Das Programm wurde nach bestem Wissen und Gewissen erstellt. Eine Haftung bzw. Gewährleistung kann aber nicht übernommen werden.


Bernhard Wallner
$Id: readmeGer.html,v 1.7 2004/09/17 19:50:10 wall Exp $