The JDuplicate Protocol Specification v1.0

JDuplicate Homepage
Messages from server to client Messages from client to server Messages behaviour Errors
Following are some terms you should be aware of when reading the JDuplicate protocol specification:
Low level communication
JDuplicate's lower level network protocol is TCP. Data is sent back and forth between the client and the server using Java's modified UTF-8 protocol implemented in the DataIntput.readUTF and DataOutput.writeUTF methods. The Java API documentation contains all the information you will need to implement this protocol using the language of your choice.
HALL The hall is the main room where players can only chat, create and join games. When a player connects to server or when he leaves a game, his state in 'in hall'
GAME A game is a 'room' which players can join, and where they can play a game or chat. A game is over (terminated) when all players connected to part from it or disconnect
CLIENT A client is the application used by a player to connect to a JDuplicate server
PLAYER A player is a person that wants to have fun playing JDuplicate :)
GAME PLAYERS All players connected to a specific game.
ALL GAME PLAYERS All players connected to a game (ie: players not in the hall).
HALL USERS The users in the hall
LETTERSETS Describes the glyphs (usually the alphabet) of a particular language, as well as the occurences and values of each one of these glyphs in the beanbag. On the server, this information is stored in .jdup files and is transferred to all game players upon them joining a game. Lettersets are game specific.
GAMETYPE A gametype describes the general settings (rules) to be used for games using that gametype. As of version 0.6, the settings are: description, rules [duplicate, scrabble, anagram], dictionary, letterset
Game State
WAITING The game has not yet started, it is waiting for a game operator to send a start message
IN GAME The game has started, and people are currently playing.
GAME OVER The game is over but there are still players connected to the game (most probably chatting about the game that has ended a while ago)
Client State
LOGGED The client is connected to server
IN HALL The client is in the hall, not connected to any game
IN GAME The client is connected to the server, and has joined a game

Copyright Notice

Copyright (c) 2004 Ahmad Imam, Luc Vo Van, Jeremy Grumbach
This document was originally written by Ahmad Imam.
Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is available on the Free Software Foundation Website at