I've been wanting to see if I could use Shogidokoro or WhaleWatcher to do online shogi games but I still don't know how servers for them work.
81Dojo doesn't allow foreign clients to connect. Therefore the protocol is not published.
The 'CSA protocol' is public, however. You can find the description of it on the website of the Computer Shogi Association. I don't know Shogidogoro, but in general CSA is the network interface Shogi GUIs support, as participants have to use it to connect to the tournament server of the CSA championship.
The CSA protocol only supports playing games; there are no provisions for opponent selection. Or for chatting, selecting games to watch, etc. The server decides which games will be played, and anyone connected to it just has to provide the moves.
I thought the Floodgate server also used this protocol, or perhaps a somewhat extended version of it. I did write a connection adapter that can be run as an engine, but also connects to Floodgate, so that when you play against that pseudo-engine you are in fact playing games on Floodgate. I used it to play my engine on Floodgate, and it worked fine.
I thought the Floodgate software was open source. (But I am not 100% sure.) So you could start from there if you want to develop your own server, extending the protocol with the functions you need for inter-user communication other than the games itself. I think this is what 81Dojo did.
What port you use is basically up to you. Each server could use a different port, usually the software allows you to configure this when you start up the server. If you set up your own server, you would know on what port you run it. The CSA protocol does have a default port. (I forgot which it was, but it should be in the specs. Or otherwise in the specs to connect with Floodgate.)
Shogidokoro is a very bad idea to play on servers with people.
The protocol it uses is mainly created for AIs to play against each other, not comfortable for humans.
Why reverse engineering the protocol???
Shogidokoro is using the CSA-protocol.
short (maybe old), but English:
- http://www.computer-shogi.org/protocol/record_e.html
Japanese, but nevertheless helpful:
- http://www.computer-shogi.org/protocol/tcp_ip_server_11.html
- http://www.computer-shogi.org/protocol/record_v22.html
And about the port:
the server should be able to use EACH port it likes, somewhere in settings or as parameter.
And of course the client should use the same port.
Oh, still I checked it: Shogidokoro don't allow to setup a port - at least I can't find where
Simple trying it: it uses port 4081
BCM