关于此次java作业中C/S架构的初步设想

       目前对于黑白棋网络版的初步构想是将其分为四个部分:1.登录 / 注册;2.游戏大厅;3.房间;4.棋桌。

       以下流程是从单用户角度出发看待整个程序流程:

       1.服务器端始终有一个线程Listen在监听网络联接信号。

       2.当用户在客户端输入用户名和密码,点击发送后,客户端立即建立一个客户socket向服务器发出联接请求,并跳转到游戏大厅的界面中。

       3.服务器接受客户的连接请求之后,首先将这个client_socket给予一个编号cn,并保存进一个由服务器维护的动态的存储结构中,并向这个socket发送首个信息:游戏大厅的信息,其中主要是各个房间里动态信息,比如一共有哪些房间,每个房间现在有多少人等。服务器每过一定的时间就向当前在线的客户更新房间信息(还有一种设想是:服务器不是定时向客户端更新房间信息,而是每当有一个客户进入或离开房间或更改了当前状态以后就向其他的用户发出更新信息)。

       4.客户点击进入一个未满的房间并不会导致client_socket的传递,服务器所做的不过是给这样的client_socket赋予一个标记房间门牌号的编码gn。所有具有相同gn的socket即表示在同一房间中。

       5.服务器不维护桌子本身(这将由一个维护桌子的程序DeskHandl来维护),但是服务器将为每一张桌子建立一个存储结构,它保存了这张桌子当前的状态信息desk_state,比如说:桌上有几人(那两个),有没有开始游戏等。

       6.客户在房间中可以看到房间中的每一张桌子,以及这些桌子的使用情况。客户可以在任意选择一张桌子坐下(每张桌子之多可以有两个客户——即两个棋手本人,目前不支持观战模式),此时,服务器便将该客户的soket加入到标志

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值