没做过这种类型的游戏,再加上你说是练练手,那我就随便扯了。
HTTP短连接没想明白怎么弄比较合适。
socket长连接的话就比较简单了,Java的话你可以练习用java.nio包里的东西自己写一个Server,也可以用现成的netty,mina。
client比较简单,用什么语言,其网络核心代码都基本都是一个socket对象。
client连接上server,点击好友发送和另一个client对战的请求给server,server询问另一个client,client同意之后,server给两个client发送题目。两边的client谁先完成答案server就告诉谁得分,server通知另一个client结果,发送下一题的信息。
消息的传输可以将信息简单拼接成一个大字符串,String.getBytes()后传,也可以你自己写一个将对象每一个属性根据基本类型转换成byte[]的方法。
server内存里需要记录的东西包括:每个client的得分和账号信息,client谁和谁是一组,现在进行到第几题了,题目信息。
每一局结束的时候,client断开连接的时候,或者现金购买道具之后,用数据库存储一下玩家数据。
可能需要用到的知识,java,nio,client语言,mysql,ibatis/hibernate的数据库连接