Java实训:实训一 ——长春职业技术学院 16级网络工程

时间:2024-01-20 17:38:27

Java实训:实训一

本文会解释一些设计思路。

想看具体过程,请转:https://www.cnblogs.com/lxwlxw/p/10114187.html

笑维的码云项目命名不太对,所以我来:https://gitee.com/SoridoD/java_shixun1


(括号里的内容为写文章时想到的,写代码时没有考虑到)

我的设计思路:

既然是个多人游戏,必然是有服务器和客户端的

玩家过多的话,用TCP也许会导致服务器内存满了,所以我选择用UDP来负责两者的通信

所有的计算由服务器完成(也许这里可以优化,让客户端分担一部分?)

客户端的所有显示信息皆由服务器发出,客户端接收并显示(可能会有点多余?)

所有玩家的信息都存到服务器的即时数据里(我这里把一个玩家对应一个对象。)

提供两个简单的代码:(复制即用)

功能:输入特定的指令开始(只有输入start才会跳出,否则一直循环)

 while(true) {
if("start".equals(read.next()))
break;
}

功能:让运行等一会再运行(括号里2000为毫秒,,也就是2秒)

 try {
Thread.currentThread();
Thread.sleep(2000);
}catch(Exception e) {
System.out.println(e);
}

新思路:

UDP不可靠,通信过程可能会丢包,怎么让它变得可靠?

有种想法就是用利用代码实现确认机制,比如裁判给玩家发包,玩家要给裁判回包确认收到,如果裁判没收到确认则要重新发包。