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 ...
随机推荐
- WebPack打包后如何调试
作为一个程序员每天的大部分工作就是调试自己写的程序,那我们使用了webpack后,所以代码都打包到了一起,给调试带来了麻烦,但是webpack已经为我们充分考虑好了这点,它支持生产Source Map ...
- formdata 上传图片+进度条
记得引入jquery //上传进度回调函数: function progressHandlingFunction(e) { if (e.lengthComput ...
- centos7——mysql5.7忘记root密码的处理方式
参考资料:https://www.cnblogs.com/nangch/p/5521193.html 解决方法: 一.通过编辑/etc/my.cnf文件在[mysqld]下面加上skip-grant- ...
- CentOS6.9切换root用户su root输入正确密码后一直提示Incorrect password,如何解决?
su是切换用户命令,su root时,输入正确的root命令,却提示Incorrect password,当前用户为普通用户,遇到此问题该如何解决呢? 如果设置了wheel组,使用su root命令是 ...
- python 在字典中添加键值对的方法。
list 添加元素的方法是 list.append(a).将 a 添加到 list 里. dict 添加元素的方法是 dict.update(dict2).意为,将 dict2 的内容添加到 di ...
- 深入理解Plasma(四)Plasma Cash
这一系列文章将围绕以太坊的二层扩容框架 Plasma,介绍其基本运行原理,具体操作细节,安全性讨论以及未来研究方向等.本篇文章主要介绍在 Plasma 框架下的项目 Plasma Cash. 在上一篇 ...
- 关于requestAnimationFrame与setInterval的一点差异
requestAnimationFrame与setInterval都可以实现循环触发事件,但是setInterval是基于时间的,而requestAnimationFrame是基于帧数的,在我的一次开 ...
- 成功解决internal/modules/cjs/loader.js:596 throw err; ^ Error: Cannot find module 'express'
^ Error: Cannot find module 'express'根据提示我们就可以知道,没有找到express这个模块,解决办法就是:npm install express
- selenium自动化定位方式
自动化定位方式 1.String Xpath = String.format("//*[@id=\"saveFileKeyWordsBtnHand\"]/../../.. ...
- 初识ldap
什么是LDAP? LDAP的英文全称是Lightweight Directory Access Protocol,一般都简称为LDAP.它是基于X.500标准的, 但是简单多了并且可以根据需要定制.与 ...