DamExchange Protocol Techniek
De koppeling tussen twee damprogramma's wordt geïmplementeerd
in een twee lagen structuur. Laag 1 verzorgt betrouwbare
communicatie van berichten tussen de twee programma's. Laag 2
beschrijft de inhoud van de berichten.
Het laag 1 protocol kan in principe
vervangen worden door elk willekeurig ander protocol dat
betrouwbaar berichten kan versturen tussen twee programma's.
Natuurlijk moeten twee programma's hetzelfde laag 1 protocol
gebruiken om met elkaar te kunnen communiceren.
Voor laag 1 zijn tot nu toe twee protocollen gedefinieerd, namelijk het
NULMODEM en het SOCKET protocol (IPv4 en IPv6). De beschrijving van het
NULMODEM protocol bevat tevens pseudo code om de implementatie te
vergemakkelijken.
Het laag 2 protocol (DamExchange
berichten) is vast en onafhankelijk van het gekozen laag 1
protocol. DamExchange is echter wel zodanig ontworpen dat
toekomstige uitbreidingen mogelijk zijn.
Voor damprogramma's onder Windows 7 / 8.1 / 10 / 11 is een DLL met
bijbehorende header file beschikbaar die bovengenoemde
protocollen bevat. Zie hier
Uitgangspunten bij het ontwerp van DamExchange:
- De uit te wisselen DamExchange berichten (laag 2) zijn
onafhankelijk van het hardware platform of specifieke
encoding. Ook alignment en byte ordering (big endian vs.
little endian) dienen geen rol te spelen. De programma's
wisselen om aan deze voorwaarden te voldoen berichten
uit, uitsluitend op basis van de ASCII tekenset met
waarden van 1 t/m 127.
- Het laag 1 protocol kan berichten sturen van minimaal 1
en maximaal 127 tekens.
- De inhoud en indeling van de DamExchange berichten (laag
2) is onafhankelijk van het onderliggende laag 1
protocol.
- Het laag 2 protocol (DamExchange berichten) gaat uit van
correcte implementatie van dat protocol aan beide zijden.
M.a.w. in het laag 2 protocol moet niet gepoogd worden
implementatie fouten van het andere programma op te
vangen. Ook moet niet geprobeerd worden fouten in laag 1
op te vangen binnen laag 2; er moet van uit gegaan worden
dat laag 1 een betrouwbaar transport levert.
- Het protocol moet geschikt zijn om een
computerdamtoernooi te spelen met een DamExchange
Toernooi Server als Initiator. Alle (gelijktijdig) op die
server aangesloten programma's zijn dan dus Volger. De
DamExchange Toernooi Server valt buiten dit document.
DamExchange Home