网络通信——常见结构及强联网游戏和弱联网游戏区别
声明:本文为个人笔记,用于学习研究使用非商用,内容为个人研究及综合整理所得,若有违规,请联系,违规必改。
网络通信——常见结构及强联网游戏和弱联网游戏区别
文章目录
- 网络通信——常见结构及强联网游戏和弱联网游戏区别
- 一.常见互联网结构及相关概念
- 1.常见结构一般分为以下三种
- 2.相关概念
- 2.1Socket:网络套接字
- 2.2Http/Https:(安全的)超文本传输协议
- 2.3FTP:文件传输协议
- 二.强联网游戏
- 1.概念
- 2.原理
- 3.特点:
- 3.1通信特点:
- 3.2通信方式:
- 4.应用:
- 三.弱联网游戏
- 1.概念
- 2.原理
- 3.特点:
- 3.1通信特点:
- 3.2通信方式:
- 4.应用:
- 四.总结
一.常见互联网结构及相关概念
1.常见结构一般分为以下三种
C/S结构(客户端/服务器):适用于传统的客户端游戏和微端游戏。
B/S结构(浏览器/服务器):适用于网页游戏。
C/S结构:介于网页游戏和客户端游戏之间的微端游戏。
2.相关概念
2.1Socket:网络套接字
是对网络中不同主机上的应用进程之间进行双向通信的端点的抽象,一个套接字就是网络上进程通信的一端,提供了应用层进程利用网络协议交换数据的机制我们之后主要要学习的就是Socket网络套接字当中的各种API来进行网络通信,主要用于制作长连接游戏(强联网游戏)
2.2Http/Https:(安全的)超文本传输协议
是一个简单的请求-响应协议,它通常运行在TCP协议之上,它指定了客户端可能发送给服务端什么样的信息以及得到什么样的响应。
主要用于制作短连接游戏(弱联网游戏),也可以用来进行资源下载
2.3FTP:文件传输协议
是用于在网络上进行文件传输的一套标准协议,可以利用它来进行网络上资源的下载和上传。它也是基于TCP的传输,是面向连接的,为文件传输提供了可靠的保证
二.强联网游戏
1.概念
通常说的强联网其实就是用Socket(套接字)连接,也叫强连接,长连接。
强联网游戏——>长连接游戏
2.原理
基本的socket通信服务器端主要需要确定端口,同时绑定端口进行监听,一旦有从客户端法过来的连接请求就建立连接并收发消息。
3.特点:
不管是否需要传输数据,客户端与服务器一直处于连接状态,除非一端主动断开,或者出现意外情况(客户端关闭或服务端崩溃等)
3.1通信特点:
连接一直建立,可以实时的传输数据
3.2通信方式:
TCP传输控制协议 或 UDP用户数据报协议
4.应用:
强联网游戏:这种游戏会频繁的和服务端进行通信,会一直和服务端保持连接状态,不停的和服务器之间交换数据。应用于需要实时对战、多人在线的游戏。
一般的MMORPG(角色扮演)、MOBA(多人在线竞技游戏)、ACT(动作游戏)等等都会是强联网游戏,这些游戏的部分核心逻辑是由服务端进行处理,客户端和服端之间不停的在同步信息比如:王者荣耀,绝地求生等.
三.弱联网游戏
1.概念
弱联网游戏——>短连接游戏
2.原理
使用HTTP/HTTPS协议进行非实时通信。
通信方式主要是GET和POST请求。
基于URL的请求响应模式,浏览器通过HTTP获取服务器资源并渲染网页。
每次连接处理单一请求,处理完毕后即断开,节省资源。
应用于登录、注册、选服功能,以及获取游戏角色信息、商城窗口信息等。
3.特点:
这种游戏不会频繁的进行数据通信,客户端和服务端之间每次连接只处理一次请求,服务端处理完,客户端的请求后返回数据后就断开连接了。游戏的核心玩法都由客户端完成,客户端处理完成后只是告诉服务端一个结果,服务端验证结果即可,不需要随时通信。
3.1通信特点:
需要通信时再连接,通信完毕断开连接
3.2通信方式:
HTTP超文本传输协议、HTTPS安全的超文本传输协议(他们本质上是TCP协议)
4.应用:
应用于登录、注册、选服功能,以及获取游戏角色信息、商城窗口信息等。
一般的三消类休闲游戏、卡牌游戏等都会是弱联网游戏,比如消消乐。
四.总结
网络游戏的通信方案大体上可以根据游戏的实际情况分为两种:
长连接(强联网)游戏 和 短连接(弱联网)游戏
1.Socket网络套接字 主要用来完成 长连接网络游戏需求
2.Http超文本传输协议 主要用来完成 短连接网络游戏需求 (或者资源下载相关)
3.Ftp文件传输协议 主要用来完成 资源的下载和上传等需求
网络游戏开发中,根据游戏的需求和特点,可以选择适合的网络结构和通信方式。实时性和多人交互的游戏倾向于使用强联网,而非实时性的功能如用户认证、信息获取等则适合使用弱联网。
相关文章:
网络通信——常见结构及强联网游戏和弱联网游戏区别
声明:本文为个人笔记,用于学习研究使用非商用,内容为个人研究及综合整理所得,若有违规,请联系,违规必改。 网络通信——常见结构及强联网游戏和弱联网游戏区别 文章目录 网络通信——常见结构及强联网游戏和…...
如何安装PyFluent
0.什么是PyFluent? 官方介绍如下: PyFluent 是 PyAnsys 生态系统的一部分, 允许您在所选的 Python 环境中结合使用 Fluent 与其他 PyAnsys 库和外部 Python 库一起使用。 PyFluent 实现了客户端-服务器体系结构。它使用谷歌遥控器 过程调用或 gRPC 接…...
Qt 2 QMapQHashQVector类实例
1. QMap // 1:QMap的使用// 创建一个QMap 实例 key 为 QString value 为 intQMap<QString,int> Grade;// 插入方式有两种插入方式// 1.map[key] valueGrade["语文"] 90;Grade["数学"] 120;// 2.map.insert(key,value);Grade.insert("英语&qu…...
使用Git将文件夹上传到Github以及使用Git LFS上传大文件
使用Git将文件夹上传到Github以及使用Git LFS上传大文件...
1.SCI各模块
1.学会“抄” 写论文,一定要学会“抄”!这样才能事半功倍,尤其是对于初次写作的新手,否则写作过程一定会让你痛不欲生,而且写出来的东西就是一坨shi,不仅折磨自己,也折磨导师。 写论文与建大楼…...
记录shell编程中$1,$@等符号的含义
笔者最近老是遇到shell中的$相关的题目,于是打算写篇文章记录一下。考虑到并没有特别多需要解释的内容,所以并不会进行介绍,上图上表上代码,让机器说话,machine always right test.sh #/bin/bash echo $# $# echo …...
单链表的应用
文章目录 目录1. 单链表经典算法OJ题目1.1 [移除链表元素](https://leetcode.cn/problems/remove-linked-list-elements/description/)1.2 [链表的中间节点](https://leetcode.cn/problems/middle-of-the-linked-list/description/)1.3 [反转链表](https://leetcode.cn/problem…...
手机副业赚钱秘籍:让你的手机变成赚钱利器
当今社会,智能手机已然成为我们生活不可或缺的一部分。随着技术的飞速进步,手机不再仅仅是通讯工具,而是化身为生活伴侣与工作助手。在这个信息爆炸的时代,我们时常会被一种焦虑感所困扰:如何能让手机超越消磨时光的定…...
(二十七)Flask之数据库连接池DBUtils库
目录: 每篇前言:DBUtils库模式一(底层使用threading.local实现):模式二:Flask中使用方式一:直接将DBUtils初始化放到settings.py文件中方式二:从utils文件夹中导入脚本使用DBUtils代码demo:每篇前言: 🏆🏆作者介绍:【孤寒者】—CSDN全栈领域优质创作者、HDZ核心…...
FewShotPromptTemplate和SemanticSimilarityExampleSelector的学习
FewShotPromptTemplate 和 SemanticSimilarityExampleSelector 是在少样本学习(FewShot Learning)场景中常用的两种技术,它们在提高模型泛化能力和减少对大量标注数据的依赖方面扮演着重要角色。 下面我会解释它们之间的关系: F…...
【保姆级】2024年OnlyFans订阅指南
OnlyFans是一个独特的社交媒体平台,它为创作者和粉丝提供了一个互动交流的空间。通过这个平台,创作者可以分享他们的独家内容,而粉丝则可以通过订阅来支持和享受这些内容。如果你对OnlyFans感兴趣,并希望成为其中的一员࿰…...
深入理解JVM中的G1垃圾收集器原理、过程和参数配置
码到三十五 : 个人主页 心中有诗画,指尖舞代码,目光览世界,步履越千山,人间尽值得 ! 在Java虚拟机(JVM)中,垃圾收集(GC)是一个自动管理内存的过程ÿ…...
VUE3 + Elementui-Plus 之 树形组件el-tree 一键展开(收起);一键全选(不全选)
需求: 产品要求权限树形结构添加外部复选框进行全部展开或收起;全选或不全选。 实现步骤: tree组件部分: <div class"role-handle"><div>权限选择(可多选)</div><div><el-checkbox v-mode…...
【Godot4自学手册】第三十七节钥匙控制开门
有些日子没有更新了,实在是琐事缠身啊,今天继续开始自学Godot4,继续完善地宫相关功能,在地宫中安装第二道门,只有主人公拿到钥匙才能开启这扇门,所以我们在合适位置放置一个宝箱,主人公开启宝箱…...
GitHub repository - Pulse - Contributors - Network
GitHub repository - Pulse - Contributors - Network 1. Pulse2. Contributors3. NetworkReferences 1. Pulse 显示该仓库最近的活动信息。该仓库中的软件是无人问津,还是在火热地开发之中,从这里可以一目了然。 2. Contributors 显示对该仓库进行过…...
RocketMQ 10 面试题FAQ
RocketMQ 面试FAQ 说说你们公司线上生产环境用的是什么消息中间件? 为什么要使用MQ? 因为项目比较大,做了分布式系统,所有远程服务调用请求都是同步执行经常出问题,所以引入了mq 解耦 系统耦合度降低,没有强依赖…...
【Spring进阶系列丨第十篇】基于注解的面向切面编程(AOP)详解
文章目录 一、基于注解的AOP1、配置Spring环境2、在beans.xml文件中定义AOP约束3、定义记录日志的类【切面】4、定义Bean5、在主配置文件中配置扫描的包6、在主配置文件中去开启AOP的注解支持7、测试8、优化改进9、总结 一、基于注解的AOP 1、配置Spring环境 <dependencie…...
Leetcode 152. 乘积最大子数组和Leetcode 162. 寻找峰值
文章目录 Leetcode 152. 乘积最大子数组题目描述C语言题解和思路解题思路 Leetcode 162. 寻找峰值题目描述C语言题解和思路解题思路 Leetcode 152. 乘积最大子数组 题目描述 给你一个整数数组 nums ,请你找出数组中乘积最大的非空连续子数组(该子数组中…...
项目实战之网络电话本之发送邮件名片和导出word版个人信息
1、项目介绍 1)项目功能 用户管理:分为管理员、和普通用户,设置不同用户的权限 电话本信息管理:支持管理员和普通用户对电话本的信息进行增删改操作,模糊查询(根据姓名、地址、单位) 文件批…...
前端面试问题汇总 - HTTP篇
1. 登录拦截如何实现? 在前端,可以拦截所有需要登录的请求,如果用户未登录或者登录过期,则跳转到登录页面。 2. http 缓存有哪些? 强缓存: 强缓存是指在客户端请求资源时,先检查本地是否存在缓存…...
K8S认证|CKS题库+答案| 11. AppArmor
目录 11. AppArmor 免费获取并激活 CKA_v1.31_模拟系统 题目 开始操作: 1)、切换集群 2)、切换节点 3)、切换到 apparmor 的目录 4)、执行 apparmor 策略模块 5)、修改 pod 文件 6)、…...
Appium+python自动化(十六)- ADB命令
简介 Android 调试桥(adb)是多种用途的工具,该工具可以帮助你你管理设备或模拟器 的状态。 adb ( Android Debug Bridge)是一个通用命令行工具,其允许您与模拟器实例或连接的 Android 设备进行通信。它可为各种设备操作提供便利,如安装和调试…...
模型参数、模型存储精度、参数与显存
模型参数量衡量单位 M:百万(Million) B:十亿(Billion) 1 B 1000 M 1B 1000M 1B1000M 参数存储精度 模型参数是固定的,但是一个参数所表示多少字节不一定,需要看这个参数以什么…...
【力扣数据库知识手册笔记】索引
索引 索引的优缺点 优点1. 通过创建唯一性索引,可以保证数据库表中每一行数据的唯一性。2. 可以加快数据的检索速度(创建索引的主要原因)。3. 可以加速表和表之间的连接,实现数据的参考完整性。4. 可以在查询过程中,…...
Java如何权衡是使用无序的数组还是有序的数组
在 Java 中,选择有序数组还是无序数组取决于具体场景的性能需求与操作特点。以下是关键权衡因素及决策指南: ⚖️ 核心权衡维度 维度有序数组无序数组查询性能二分查找 O(log n) ✅线性扫描 O(n) ❌插入/删除需移位维护顺序 O(n) ❌直接操作尾部 O(1) ✅内存开销与无序数组相…...
在rocky linux 9.5上在线安装 docker
前面是指南,后面是日志 sudo dnf config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo sudo dnf install docker-ce docker-ce-cli containerd.io -y docker version sudo systemctl start docker sudo systemctl status docker …...
高频面试之3Zookeeper
高频面试之3Zookeeper 文章目录 高频面试之3Zookeeper3.1 常用命令3.2 选举机制3.3 Zookeeper符合法则中哪两个?3.4 Zookeeper脑裂3.5 Zookeeper用来干嘛了 3.1 常用命令 ls、get、create、delete、deleteall3.2 选举机制 半数机制(过半机制࿰…...
Python爬虫(二):爬虫完整流程
爬虫完整流程详解(7大核心步骤实战技巧) 一、爬虫完整工作流程 以下是爬虫开发的完整流程,我将结合具体技术点和实战经验展开说明: 1. 目标分析与前期准备 网站技术分析: 使用浏览器开发者工具(F12&…...
DIY|Mac 搭建 ESP-IDF 开发环境及编译小智 AI
前一阵子在百度 AI 开发者大会上,看到基于小智 AI DIY 玩具的演示,感觉有点意思,想着自己也来试试。 如果只是想烧录现成的固件,乐鑫官方除了提供了 Windows 版本的 Flash 下载工具 之外,还提供了基于网页版的 ESP LA…...
浅谈不同二分算法的查找情况
二分算法原理比较简单,但是实际的算法模板却有很多,这一切都源于二分查找问题中的复杂情况和二分算法的边界处理,以下是博主对一些二分算法查找的情况分析。 需要说明的是,以下二分算法都是基于有序序列为升序有序的情况…...
