首页 文章 精选 留言 我的

精选列表

搜索[飞行模拟],共10000篇文章
优秀的个人博客,低调大师

ScummVM 2.1.0 发布,游戏模拟

ScummVM 2.1.0已经发布,该版本增加了 16 款基于 8 个引擎的新游戏、一个 Nintendo Switch 端口和近 500 个 bug 修复程序,内容如下: 新支持的游戏有: Blade Runner Duckman: The Graphic Adventures of a Private Dick Hoyle Bridge Hoyle Children's Collection Hoyle Classic Games Hoyle Solitaire Hyperspace Delivery Boy! Might and Magic IV - Clouds of Xeen Might and Magic V - Darkside of Xeen Might and Magic - World of Xeen Might and Magic - Swords of Xeen Mission Supernova Part 1 Mission Supernova Part 2 Quest for Glory: Shadows of Darkness The Prince and the Coward Versailles 1685 此外,该版本还增强了 Android 和 iOS 端口,用户能够注意到改进的新GUI、改进的 Roland mt-32 声音仿真、新的像素自适应模式、macos 和 linux 上的文本到语音支持,以及对同步保存和从基于云的文件服务下载游戏数据的支持。此版本改进了许多现有的引擎,完整列表见: https://www.scummvm.org/frs/scummvm/2.1.0/ReleaseNotes.htm

优秀的个人博客,低调大师

模拟Internet架构的DNS解析系统

一、环境准备 主机用的centos7,建议关闭图形界面: systemctl set-default nulti-user.target init 3 准备工作:关闭所有主机的防火墙,selinux: systemctl stop firewalld systemctl disable firewalld setenforce 0 sed -i "s/SELINUX=enforcing/SELINUX=disabled/" /etc/selinux/config 这里用到dns转发,dns主从,dns子域委派,有兴趣的可以在主从dns服务器上添加反向解析域和智能dns。 架构图如下: 二、搭建 由于主机较多,配置过程中可能会出现各种问题,从哪里配置呢? 这里从下往上配置,配置一台主机测试无问题后再配置另外一台 用ip地址的后2为表示主机 1、在12.67 建立web网站 yuminstallhttpd-y systemctlstarthttpd echowww.test.com>/var/www/html/index.html 在客户端12.6测试网站正常 2、搭建主服务器12.47 yuminstallbind-y vi/etc/named.conf#修改下列三处,注释掉相当域使用默认值,监听本地所有ip,允许其他主机查询 vi/etc/named.rfc1912.zones#在文件中添加一下几行,该文件用来专门存放域的文件,和放在/etc/named.conf作用一样 vi/var/named/test.com.zone#建立区域数据库 named-checkconf#检查配置文件 named-checkzonetest.com/var/named/test.com.zone#检查区域数据库文件 chgrpnamed/var/named/test.com.zone#修改所属组 chmod640/var/named/test.com.zone#修改权限 systemctlstartnamed #如果以上几步有问题会导致服务无法启动 3、配置12.57从服务器 yuminstallbind-y vi/etc/named.conf vi/etc/named.rfc1912.zones#在文件中添加一下几行 主从dns服务器搭建完成 digwww.test.com@192.168.12.47#在12.6客户机测试可以解析 测试从服务器能否同步,修改主dns服务器12.47版本序号,和解析记录,重启服务 systemctlrestartnamed 12.57从服务器已经更新 digxx.test.com@192.168.12.47#在12.6用12.47做dns服务器测试可以解析 4、建立test父域 com域 yuminstallbind-y vi/etc/named.conf vi/etc/named.rfc1912.zones vi/var/named/com.zone chgrpnamed/var/named/com.zone#修改所属组 chmod640/var/named/com.zone#修改权限 systemctlrestartnamed dig www.test.com @192.168.12.37 # 在客户机12.6上测试 5、搭建12.27根dns服务器 yuminstallbind-y vi/etc/named.conf 修改该文件/etc/named.conf 19、20行 vi /var/named/root.zone chgrpnamed/var/named/root.zone#修改所属组 chmod640/var/named/root.zone#修改权限 systemctlstartnamed digwww.test.com@192.168.12.27#在客户机上测试 6、搭建12.17转发dns服务器 vi/etc/named.conf#注释下列2行 //allow-query{localhost;}; //listen-onport53{127.0.0.1;}; 作为转发服务器通常要关闭下面2项 vi /var/named/named.ca 该文件原本是全世界13个根域名服务器,删除全部内容只保留这2行 systemctlrestartnamed digwww.test.com@192.168.12.17#在客户机测试 7、本地dns转发服务器12.7 systemctlstartnamed 到此已经搭建完成 修改客户端dns服务器地址, systemclt restart network 测试成功解析

优秀的个人博客,低调大师

Java 模拟基于UDP的Socket通信

效果图: 多线程服务器 客户端 单线程服务器 多线程服务器 import java.io.IOException; import java.net.DatagramPacket; import java.net.DatagramSocket; import java.net.InetAddress; import java.net.SocketException; public class UDPMutiThreadServer implements Runnable { DatagramPacket datagramPacket; //数据报包 byte[] data1; //存放数据的变量 public UDPMutiThreadServer(DatagramPacket datagramPacket,byte[] data1) { this.datagramPacket = datagramPacket; this.data1=data1; } public static void main(String[] args) throws SocketException { int count=0; //用于统计客户端数量 DatagramSocket datagramSocket = new DatagramSocket(1234); System.out.println("```````服务器已经启动,等待客户端发送数据````````"); while (true) { /** * 创建数据报包,用于保存收发的数据,需要定义数据包的大小和长度 */ byte[] data = new byte[1024]; DatagramPacket datagramPacket = new DatagramPacket(data,data.length); try { datagramSocket.receive(datagramPacket); } catch (IOException e) { e.printStackTrace(); } if (datagramPacket.getLength() > 0) { new Thread(new UDPMutiThreadServer(datagramPacket,data)).start(); count++; System.out.println("客户端的数量为:" + count); } } } @Override public void run() { // byte[] data=new byte[1024]; String info = new String(data1,0,datagramPacket.getLength()); System.out.println("我是服务器,客户端发送的信息是:"+ info); /** * 响应客户端数据 * * 从接收的数据包中获取客户端的地址和端口 */ InetAddress address = datagramPacket.getAddress(); int port = datagramPacket.getPort(); //定义响应数据 byte[] data2 = "服务器已经收到你的信息,谢谢!".getBytes(); //用DatagramPacket把要发送的数据进行打包 DatagramPacket datagramPacket1 = new DatagramPacket(data2,data2.length,address,port); //用datagramSocket把数据包发送给客户端 try { DatagramSocket datagramSocket= new DatagramSocket(); datagramSocket.send(datagramPacket1); } catch (IOException e) { e.printStackTrace(); } } } 客户端 import java.io.IOException; import java.net.*; public class UDPClient { public static void main(String[] args) throws IOException { /** * 向服务器发送数据 * * 定义服务器地址,端口号和数据 */ InetAddress address = InetAddress.getByName("localhost"); int port=1234; byte[] data ="我是:admin123,密码:123456546".getBytes(); /** * 定义一个DatagramPacket,把要发送的数据时行打包 */ DatagramPacket datagramPacket = new DatagramPacket(data,data.length,address,port); /** * 定义一个DatagramSocket,用于发送和接收数据 */ DatagramSocket datagramSocket = new DatagramSocket(); datagramSocket.send(datagramPacket); /** * 接收服务器发送的数据 */ //定义数据包的容量 byte[] daaa= new byte[1024]; DatagramPacket datagramPacket1 = new DatagramPacket(daaa,daaa.length); //用DatagramSocket接收数据 datagramSocket.receive(datagramPacket1); //读取数据包的内容 String info = new String(daaa,0,datagramPacket1.getLength()); System.out.println("我是客户端,你说:"+info); datagramSocket.close(); } } 单线程服务器 import java.io.IOException; import java.net.DatagramPacket; import java.net.DatagramSocket; import java.net.InetAddress; import java.net.SocketException; public class UDPServer { public static void main(String[] args) throws IOException { /** * 接收客户端数据 * * 创建服务器端的Socket,用于收发数据,需要指定端口 */ DatagramSocket datagramSocket = new DatagramSocket(1234); /** * 创建数据报包,用于保存收发的数据,需要定义数据包的大小和长度 */ byte[] data = new byte[1024]; DatagramPacket datagramPacket = new DatagramPacket(data,data.length); System.out.println("```````服务器已经启动,等待客户端发送数据````````"); /** * 用Socket收取从客户端发来的数据,并保存在Packet数据报包中 */ datagramSocket.receive(datagramPacket); String info = new String(data,0,datagramPacket.getLength()); System.out.println("我是服务器,客户端发送的信息是:"+ info); /** * 响应客户端数据 * * 从接收的数据包中获取客户端的地址和端口 */ InetAddress address = datagramPacket.getAddress(); int port = datagramPacket.getPort(); //定义响应数据 byte[] data2 = "服务器已经收到你的信息,谢谢!".getBytes(); //用DatagramPacket把要发送的数据进行打包 DatagramPacket datagramPacket1 = new DatagramPacket(data2,data2.length,address,port); //用datagramSocket把数据包发送给客户端 datagramSocket.send(datagramPacket1); } }

资源下载

更多资源
Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

Nacos

Nacos

Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service 的首字母简称,一个易于构建 AI Agent 应用的动态服务发现、配置管理和AI智能体管理平台。Nacos 致力于帮助您发现、配置和管理微服务及AI智能体应用。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据、流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

WebStorm

WebStorm

WebStorm 是jetbrains公司旗下一款JavaScript 开发工具。目前已经被广大中国JS开发者誉为“Web前端开发神器”、“最强大的HTML5编辑器”、“最智能的JavaScript IDE”等。与IntelliJ IDEA同源,继承了IntelliJ IDEA强大的JS部分的功能。

用户登录
用户注册