I am building a small multipliplayer which will need the following:
- it must be written in Delphi
- must support Internet connection (not only LAN)
- work over HTTP
- support some encryption of the packets (it may be custom)
- be able to send commands to the server
- be able to receive responses from the server
- be able to connect up to 8 players to one server
- be able to pass complex objects (maybe JSON serialized) to the servers
Do you think the new Delphi 2010 Datasnap can be used successfully in this scenario or should I go with the plain old TSocket?
DataSnap can do all that you've listed above:
- DataSnap is written in Delphi.
- It can connect via HTTP over any connection, local, network, or remote.
- It will work over HTTP, including support for tunneling the HTTP connection
- You can filter the data stream however you like. The product includes a compression filter. Daniele Teti has written some very nice encryption filters.
- You can send commands to the server by calling server methods
- You can receive a response from the server via server callbacks
- You can easily connect eight people to a server
- You can pass JSON objects. That is the default type sent between client and server.
So to answer your question, yes, I think that the new Delphi 2010 DataSnap can be used in your scenario.
As Nick said, the answer is Yes.
Bob Swart wrote a white paper and produced some videos on the updated DataSnap in Delphi 2010 that can help get you started.