在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
客户端采用C#开发,服务器使用java开发,通信方式为socket。 1.首先决定交互协议 客户端指令协议:
服务端指令协议:
2.决定协议之后,根据协议完成服务端的实现—— 服务端模型:
当服务端接收到客户端命令,总体上进行两个动作,一是改变服务端状态,即修改以上模型的属性,二是(改变完状态之后)由服务端向客户端发送命令,分为响应/向当前游戏玩家广播/向所有玩家广播三种发送方式(见Service类中的response/game/all分支)。具体的响应命令的策略见RequestDealer类。 服务端的调试简单的写个java控制台客户端来交互,用之前的这个就可以,确定服务端对命令处理的业务逻辑以及响应的命令正确。 3.服务端完成之后进行客户端的开发—— 客户端界面(xaml文件在这里): 客户端的工作包括:
其中第一步的先改状态再改显示,就是典型的将命令改变到model,再将model渲染到view。 第二步则仅仅做发送命令的操作,不做客户端状态的改变。只有服务器命令能让客户端的状态和显示变化,这样让职责更清晰。 代码在这里,其中dealRequest方法是完成上面1)的工作,方法体内调用setStateMsg方法进行根据状态改变界面的工作;而createGame_Click等响应按钮事件的方法完成上面2)的工作。
总结一下—— 1)研究问题领域,进行总体设计(在纸上进行的工作,包括服务器、客户端状态、客户端界面) 2)决定交互协议,服务器、客户端的命令格式,本质为方法名、参数列表的定义。 3)服务端开发,使用模拟客户端进行测试和调试。 4)客户端开发
服务器在182.92.10.238服务器的42769接口,欢迎用socket连接实验,其源码在这里。 客户端在这里,360会报木马,最好关闭360再下载。如果不放心可以自行使用源码编译。
最后给自己记的: 1)跑jar包的方法:eclipse导出可执行jar,然后写个bat脚本,内容为call java -jar bpServer.jar。 2)本地项目上传github:先在github上建项目,然后本地新建个文件夹,然后git clone,然后将项目拷贝到出现的子文件夹里,cd进去,git add .,git -commit -m "init",最后git push即可。我的脑子最不擅长记这种机械的东西了…… |
2023-10-27
2022-08-15
2022-08-17
2022-09-23
2022-08-13
请发表评论