Java实训:实训一 ——长春职业技术学院 16级网络工程
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不可靠,通信过程可能会丢包,怎么让它变得可靠?
有种想法就是用利用代码实现确认机制,比如裁判给玩家发包,玩家要给裁判回包确认收到,如果裁判没收到确认则要重新发包。
Java实训:实训一 ——长春职业技术学院 16级网络工程的更多相关文章
- Java作业:第四次过程性考核 ——长春职业技术学院 16级网络工程
Java作业:第四次过程性考核 码云链接:https://gitee.com/SoridoD/java_kaohe4 (时间匆忙没打注释,真有急事) (客户端和服务器会自动创建表,所以没有sql ...
- Java作业:第二次过程性考核 ——长春职业技术学院 16级网络工程
## 时间有限,脑力不足 ## 只给出代码部分(附带注释) 码云 https://gitee.com/SoridoD/codes 7-5: import java.util.Scanner; clas ...
- Java作业:第一次过程性考核 ——长春职业技术学院 16级网络工程
Java作业:第一次过程性考核 ••<结构化程序设计>•• 考核目标:初步了解Java基本语法规则,学习结构化程序设计思想. 码云链接:https://gitee.com/SoridoD/ ...
- 完整java开发中JDBC连接数据库代码和步骤[申明:来源于网络]
完整java开发中JDBC连接数据库代码和步骤[申明:来源于网络] 地址:http://blog.csdn.net/qq_35101189/article/details/53729720?ref=m ...
- 《JAVA程序设计》实训第一天——《猜猜看》游戏
课程实训是做一个猜猜看的小游戏.对于对代码不熟悉不了解的我来说的确挺难的.可是我还是会努力的. import java.awt.EventQueue; import javax.swing.JFram ...
- 《JAVA程序设计》实训第二天——《猜猜看》游戏
课程实训第二天,我在第一天的基础上去导入目录,第一天那时候一直改动都是改动不到,上网找了相关的知识.问了同学该怎么去导入显示图片. public class weiwei extends JFrame ...
- Java第二次实训
package fsafsa; import java.util.Scanner; public class fafas { public static void main(String[] args ...
- JAVA第二次实训作业
1.一维数组的创建和遍历. 声明并创建存放4个人考试成绩的一维数组,并使用for循环遍历数组并打印分数. 要求: 首先按“顺序”遍历,即打印顺序为:从第一个人到第四个人: 然后按“逆序”遍历,即打印顺 ...
- Java+MySQL企业级实训全套课程
总纲 JAVA基础部分 教学视频:第一讲:Java入门与环境搭建 提取码:h9vm第二讲:变量与运算符 提取码:928t第三讲:顺序结构及条件结构 提取码:3v1l第四讲:while ...
随机推荐
- Android中的广播基本实现及回调方法的理解
在Android中broadcast这一节的内容其实不算多主要是牵扯到一个broadcastreceiver类,这个类是一个抽象类,下面有一个抽象方法onreceiver(),可以再我们收到网络状态变 ...
- qt连接数据库Sqlite
#include <QCoreApplication> #include <QDebug> #include <QSqlDatabase> #include < ...
- flutter Dynamic updates 热更新 版本更新
比较新的解释 https://juejin.im/entry/5c85c959f265da2d881b5eb8 https://my.oschina.net/u/1464083/blog/297880 ...
- 论文笔记:ATOM: Accurate Tracking by Overlap Maximization
ATOM: Accurate Tracking by Overlap Maximization 2019-03-12 23:48:42 Paper:https://arxiv.org/pdf/18 ...
- python笔记---@classmethod @staticmethod
python定义类方法的三种方式: 1.常规方式--需要通过self参数隐式的传递当前类对象的实例 2.@classmethod修饰方式--@classmethod修饰的方法class_foo()需要 ...
- yii 动态增加路由规则
使用 UrlManager类的addRules方法. 如 $url->addRules([ 'zzz/<id:\d+>' => '/test/hi', ]); 这个规则必须在开 ...
- WebPack命令执行的时候,其内部处理逻辑是什么
1.首先webpack发现并没有通过命令的形式,给它指定入口和出口 2.向根目录查找“webpack.config.js”配置文件 3.解析这个配置文件,并得到配置文件中导出的配置对象 4.当拿到配置 ...
- PHP算法练习1:两数之和
leetcode地址:https://leetcode-cn.com/problems/two-sum/description/ 题目: 给定一个整数数组和一个目标值,找出数组中和为目标值的两个数. ...
- canvas 模拟时钟
<meta charset="utf-8"> <canvas width="1000" height="1000" id= ...
- web 后台返回json格式数据的方式(status 406)
1.在类上使用注解 @RestController public class HttpComentInterface { } 2.在方法是使用注解 @ResponseBody @RequestMap ...