网络开发基础(游戏方向)之 概念名词
前言
1、一款网络游戏分为客户端和服务端两个部分,客户端程序运行在用户的电脑或手机上,服务端程序运行在游戏运营商的服务器上。
2、客户端和服务端之间,服务端和服务端之间一般都是使用TCP网络通信。客户端和客户端之间通过服务端的消息转发进行通信。
3、强联网游戏和弱联网游戏
强联网游戏:这种游戏会频繁地和服务端进行通信,会一直和服务器保持连接状态,不停地和服务器之间交换数据。例如MMORPG、MOBA。
弱联网游戏:这种游戏不会频繁地进行数据通信,客户端和服务端之间每次连接只处理一次请求,服务端处理客户端请求后返回数据后就断开连接了。例如三消休闲游戏,卡牌游戏。
| 特性 | 强联网游戏 | 弱联网游戏 |
|---|---|---|
| 连接方式 | 持久TCP/UDP连接 | 短时HTTP/HTTPS连接 |
| 通信频率 | 高频(10-60次/秒) | 低频(几分钟至几小时一次) |
| 数据传输量 | 大量实时状态数据(位置、动作等) | 少量业务数据(分数、道具等) |
| 同步机制 | 帧同步/状态同步 | 最终一致性同步 |
| 容错能力 | 要求快速断线重连 | 支持离线缓存后同步 |
4、
Socket(套接字):主要用来完成长连接网络游戏需求
HTTP(超文本传输协议):用于客户端(如浏览器)和服务器之间的网页数据传输(如 HTML、图片、视频)。
FTP(文件传输协议):用于在客户端和服务器之间上传/下载文件。
IP地址和端口号
IP地址和端口号是计算机网络中用于标识设备和服务的关键概念,它们共同确保数据准确传输到目标应用程序。
IP地址
作用:唯一标识网络中的设备(如电脑、服务器、手机等)。
类型:
-
IPv4:32位地址,格式为
192.168.1.1(约42亿个地址,已接近枯竭)。 -
IPv6:128位地址,格式为
2001:0db8:85a3::8a2e:0370:7334(解决IPv4不足的问题)。
分类:
-
公网IP:全球唯一,用于互联网通信(如谷歌的
8.8.8.8)。 -
私网IP:局域网内使用(如
192.168.x.x、10.x.x.x),通过NAT转换访问公网。
端口号
作用:标识设备上的具体服务或应用程序(一台设备可运行多个服务)。
范围:16位数字(0-65535),分为三类:
-
知名端口(0-1023):预留给系统服务(如HTTP: 80、HTTPS: 443、SSH: 22)。
-
注册端口(1024-49151):分配给用户应用程序(如MySQL: 3306)。
-
动态端口(49152-65535):临时用于客户端连接。
补充
1、本地开发可以使用 localhost:3000(localhost指向本机IP 127.0.0.1)。
2、为什么需要端口号?
IP地址只能定位设备,端口号进一步指定数据交给哪个应用程序处理。
3、端口号可以随意设置吗?
避免使用0-1023的知名端口(需管理员权限),通常选择1024以上的端口。
4、查看本机ip地址
在windows操作系统中打开命令提示符窗口,然后输入指令ipconfig查看本机的IP地址信息
快捷方式:运行窗口(win+R)-> 打开cmd -> ipconfig


5、可以通过送快递来理解IP地址和端口号:IP地址相当于居住小区的楼栋号地址,端口号相当于门牌号。只有知道了小区楼栋地址+门牌号才能准确地把快递送达。
TCP/IP协议
TCP/IP 协议概述
全称:Transmission Control Protocol / Internet Protocol。即传输控制/网络协议,也叫作网络通讯协议。
作用:提供可靠的、端到端的数据传输,确保数据在网络中正确路由和交付。
注意:TCP/IP协议不仅仅指的是TCP 和IP两个协议,而是指一个由FTP、SMTP、TCP、UDP、IP等等协议构成的协议族 ,只是因为在TCP/IP协议中TCP协议和IP协议最具代表性,所以被称为TCP/IP协议。
TCP/IP 四层模型
| 层级 | 功能 | 典型协议 |
|---|---|---|
| 应用层 | 提供用户接口和网络服务 | HTTP、FTP、DNS、SMTP、SSH |
| 传输层 | 确保端到端的数据传输(可靠/不可靠) | TCP(可靠)、UDP(不可靠) |
| 网络层 | 负责寻址和路由(跨网络传输) | IP(IPv4/IPv6)、ICMP、ARP |
| 网络接口层 | 物理连接和帧传输(数据链路+物理) | Ethernet(以太网)、Wi-Fi、PPP |
总结
-
TCP/IP 是互联网的基石,涵盖应用层、传输层、网络层、网络接口层。
-
TCP 提供可靠传输,UDP 追求高效,IP 负责寻址和路由。
-
理解 TCP/IP 有助于诊断网络问题(如延迟、丢包)和优化应用设计。
TCP和UDP
TCP(传输控制协议)和 UDP(用户数据报协议)是 TCP/IP 协议族 中最核心的两个传输层协议,它们在数据传输方式、可靠性和应用场景上有显著区别:
1、TCP:是一种面向连接、可靠的、基于字节流的传输层通信协议。
2、UDP:是一种无连接的、不可靠、但传输效率较高的协议。
TCP
传输控制协议(Transmission Control Protocol)
特点:
1、面向连接:通信前需要通过三次握手建立连接;结束时通过四次挥手释放连接。
2、可靠传输:通过确认应答(ACK)、超时重传、流量控制保证数据完整。
3、有序交付:数据按发送顺序重组。
优点:
1、数据不丢失、不重复、按序到达。
2、适合对可靠性要求高的场景(如网页、文件传输)。
缺点:
1、建立连接和确认机制引入额外开销,延迟较高。
2、不适合实时性要求极高的应用(如视频会议)。
UDP
用户数据报协议(User Datagram Protocol)
特点:
1、无连接:直接发送数据,无需握手或断开连接。
2、不可靠传输:无确认、重传、流量控制机制,数据可能丢失或乱序。
3、高效低延迟:头部仅8个字节(TCP至少20个字节),传输开销小。
4、支持广播/多播:可同时向多个目标发送数据(如视频直播)。
优点:
1、传输速度快,实时性高。
2、适合对延迟敏感的应用。
缺点:
1、不保证数据完整性,可能丢包或乱序。
2、需应用层自行处理可靠性(如 QUIC 协议基于 UDP 实现可靠传输)。
对比
| 特性 | TCP | UDP |
|---|---|---|
| 连接方式 | 面向连接(三次握手) | 无连接 |
| 可靠性 | 可靠(确认+重传) | 不可靠 |
| 数据顺序 | 保证有序 | 不保证顺序 |
| 流量控制 | 滑动窗口机制 | 无 |
| 拥塞控制 | 有(慢启动、拥塞避免) | 无 |
| 头部大小 | 至少 20 字节 | 8 字节 |
| 传输效率 | 较低(延迟高) | 极高(延迟低) |
| 适用场景 | 网页、文件、邮件 | 视频、游戏、实时通信 |
三次握手和四次挥手
三次握手
Three-Way Handshake
| 流程 | 发送方 | 接收方 | 信息 |
| 第一次握手 | 客户端 | 服务端 | 客户端向服务端请求连接 |
| 第二次握手 | 服务端 | 客户端 | 服务端同意连接请求,并告知客户端 |
| 第三次握手 | 客户端 | 服务端 | 客户端开始连接操作 |
目的:在通信双方(客户端和服务端)之间建立可靠的 TCP 连接,同步初始序列号(ISN),确保双方都能正常收发数据。
为什么需要三次握手?
-
防止历史重复连接初始化:避免因网络延迟导致的旧连接请求突然到达,造成资源浪费。
-
同步双方初始序列号:确保双方都知道对方的起始序列号,保证数据有序传输。
-
双向确认:客户端和服务端均确认对方的收发能力正常。
四次挥手
Four-Way Handshake
| 流程 | 发送方 | 接收方 | 信息 |
| 第一次挥手 | 客户端 | 服务端 | 客户端告诉服务器数据已发完,如果还有消息就快发完,否则将要断开连接 |
| 第二次挥手 | 服务端 | 客户端 | 服务器接受第一次挥手的信息,告诉客户端继续等待 |
| 第三次挥手 | 服务端 | 客户端 | 服务器消息已发完,告诉客户端可以开始断开连接 |
| 第四次挥手 | 客户端 | 服务端 | 客户端接受到操作指令,等待一定一时间如果没有收到服务器回复就开始断开操作 |
目的:安全地释放 TCP 连接,确保双方数据全部传输完毕。
相关文章:
网络开发基础(游戏方向)之 概念名词
前言 1、一款网络游戏分为客户端和服务端两个部分,客户端程序运行在用户的电脑或手机上,服务端程序运行在游戏运营商的服务器上。 2、客户端和服务端之间,服务端和服务端之间一般都是使用TCP网络通信。客户端和客户端之间通过服务端的消息转…...
MyBatisPlus-QueryWrapper的exists方法拼接SQL中的EXISTS子句
在 MyBatis-Plus 中,QueryWrapper 的 exists 方法用于拼接 SQL 中的 EXISTS 子句,通常用于构 建子查询条件。以下是具体用法和示例: 1. 基本语法 // 判断是否存在符合条件的记录 queryWrapper.exists(String existsSql); queryWrapper.notExists(String existsSq…...
【源码】【Java并发】【AQS】从ReentrantLock、Semaphore、CutDownLunch、CyclicBarrier看AQS源码
👋hi,我不是一名外包公司的员工,也不会偷吃茶水间的零食,我的梦想是能写高端CRUD 🔥 2025本人正在沉淀中… 博客更新速度 👍 欢迎点赞、收藏、关注,跟上我的更新节奏 📚欢迎订阅专栏…...
k8s介绍与实践
第一节 理论 基础介绍,部署实践,操作实践,点击这里学习 第二节 dashboard操作 查看安装的dashboard服务信息 kubectl get pod,svc -n kubernetes-dashboard 网页登录地址:https://server_ip:30976/#/login 创建token kube…...
SpringBoot 3 与 SpringDoc 打造完美接口文档
文章目录 1. SpringDoc 简介1.1 SpringDoc 优势2. 环境准备2.1 Maven 依赖2.2 基础配置3. 创建基本文档配置类4. 控制器 API 文档注解4.1 基本控制器示例4.2 模型类示例5. 高级功能5.1 API分组5.2 安全配置5.3 隐藏特定端点6. 参数描述6.1 路径参数6.2 查询参数6.3 请求体7. 响…...
【HFP】蓝牙HFP协议音频连接核心技术深度解析
目录 一、音频连接建立的总体要求 1.1 发起主体与时机 1.2 前提条件 1.3 同步连接的建立 1.4 通知机制 二、不同主体发起的音频连接建立流程 2.1 连接建立触发矩阵 2.2 AG 发起的音频连接建立 2.3 HF 发起的音频连接建立 三、编解码器连接建立流程 3.1 发起条件 3.…...
KRaft面试思路引导
Kafka实在2.8之后就用KRaft进行集群管理了 Conroller负责选举Leader,同时Controller管理集群元数据状态信息,并将元数据信息同步给各个分区的Leader 和Zookeeper管理一样,会选出一个Broker作为Controller去管理整个集群,但是元数…...
FreeRTOS菜鸟入门(六)·移植FreeRTOS到STM32
目录 1. 获取裸机工程模版 2. 下载 FreeRTOS V9.0.0 源码 3. FreeRTOS文件夹内容简介 3.1 FreeRTOS文件夹 3.1.1 Demo文件夹 3.1.2 License 文件夹 3.1.3 Source 文件夹 3.2 FreeRTOS-Plus 文件夹 4. 往裸机工程添加 FreeRTOS 源码 5. 拷贝 FreeRTOSConfig…...
14.第二阶段x64游戏实战-分析人物的名字
免责声明:内容仅供学习参考,请合法利用知识,禁止进行违法犯罪活动! 本次游戏没法给 内容参考于:微尘网络安全 上一个内容:13.第二阶段x64游戏实战-分析人物等级和升级经验 名字(中文英文符号…...
【CS*N是狗】亲测可用!!WIN11上禁用Chrome自动更新IDM插件
现象:每次打开chrome后IDM会弹出提示插件版本不一致。经过排查后发现是chrome把IDM插件给更新了,导致IDM提示版本不匹配。经过摸索后,得到了可行的方案。 第一步,打开Chrome,把IDM插件卸载掉,然后重新安装I…...
漫游git rebase + 浅谈git checkout和git branch -f的分支命令
今天学了两个命令非常有意思:一个是git checkout,一个是git branch -f。我们可以认为在提交树上,任何一个节点代表着一次提交。并且,git commit将会在 H E A D HEAD HEAD指针指向的节点上进行进一步提交。将每一个分支名视为标记当…...
深入理解 React 组件的生命周期:从创建到销毁的全过程
React 作为当今最流行的前端框架之一,其组件生命周期是每个 React 开发者必须掌握的核心概念。本文将全面剖析 React 组件的生命周期,包括类组件的各个生命周期方法和函数组件如何使用 Hooks 模拟生命周期行为,帮助开发者编写更高效、更健壮的…...
基础数学知识-概率论
文章目录 1. 随机事件和概率1. 事件运算规律2. 条件概率3. 事件独立性4. 五大公式5. 古典型概率6. 几何型概率7. n重伯努利试验2. 随机变量与分布1.离散型随机变量2. 连续型随机变量3. 常见分布4. TODO4. 随机变量的数学特征1. 数学期望2. 方差3. 常见分布期望与方差 -- TODO4.…...
OpenCV 图形API(44)颜色空间转换-----将图像从 BGR 色彩空间转换为 RGB 色彩空间函数BGR2RGB()
操作系统:ubuntu22.04 OpenCV版本:OpenCV4.9 IDE:Visual Studio Code 编程语言:C11 算法描述 将图像从BGR色彩空间转换为RGB色彩空间。 该函数将输入图像从BGR色彩空间转换为RGB。B、G和R通道值的常规范围是0到255。 输出图像是8位无符号3通…...
2025年CMS安全(面试题)
活动发起人小虚竹 想对你说: 这是一个以写作博客为目的的创作活动,旨在鼓励大学生博主们挖掘自己的创作潜能,展现自己的写作才华。如果你是一位热爱写作的、想要展现自己创作才华的小伙伴,那么,快来参加吧!…...
配置nginx服务,通过多ip区分多网站
首先关闭防火墙,setenforce 0 关过了,不截图了 多IP,首先配置多个IP地址 可以在vm增加虚拟网卡,也可以在同一网卡配置多个IP,我用第一种 记得点确定 查看新的虚拟网卡IP 没有IP,配置一个 安装nginx 写配置 server{listen 192.168.214.130:80;root /www/ip/130; # 资源根目…...
[k8s实战]Containerd 1.7.2 离线安装与配置全指南(生产级优化)
[k8s实战]Containerd 1.7.2 离线安装与配置全指南(生产级优化) 摘要:本文详细讲解在无外网环境下部署 Containerd 1.7.2 容器运行时的完整流程,涵盖二进制包安装、私有镜像仓库配置、Systemd服务集成等关键步骤,并提供…...
C++中const与constexpr的区别
在C中,const和constexpr都用于定义常量,但它们的用途和行为有显著区别: ### 1. **初始化时机** - **const**:表示变量是只读的,但其值可以在**编译时或运行时**初始化。 cpp const int a 5; // 编译…...
解决Windows安全中心显示空白页面
1、电脑重装系统后,发现原本一些软件打不开了,电脑莫名认为有病毒,自动删除插件。附图。 2、第一反应是电脑防火墙的原因,默认威胁防护识别到了病毒软件,自动删除。在开始屏幕搜Windows安全中心,打开之后发…...
三国战纪119通关笔记
文章目录 诸葛一币通关孙姬马王夏侯渊孟优夏侯惇张辽貂蝉吕蒙沙摩柯破阵及吕布陆逊左慈(跳)许褚黄盖彻里吉(跳)魏延(跳)司马懿曹操道具的安排道具-天师符(废弃)道具-九节杖道具-援军令(废弃)道具-土雷(废弃) 笔者是个菜鸡,什么天王难度无伤,天王难度5禁什…...
Android audio系统五 AudioPolicy 策略配置详解
引用:Android 音频策略配置文件解析流程 audio_policy_configuration.xml 是 Android 音频系统的核心配置文件,它定义了音频硬件接口、设备路由和基本策略。下面我将详细介绍这个文件的结构、关键配置项和实际应用。audio_policy_configuration.xml 是 …...
【MQ篇】初识MQ!
目录 一、什么是MQ?简单来说就是个“快递中转站” 📦二、为什么要用MQ?用了它,好处多多!🤩三、MQ的应用场景:各行各业都能用!🌍四、MQ的优缺点:硬币的两面&am…...
2、SpringAI接入ChatGPT与微服务整合
2、SpringAI接入ChatGPT与微服务整合 小薛博客AI 大模型资料 1、SpringAI简介 https://spring.io/projects/spring-ai Spring AI是一个人工智能工程的应用框架。其目标是将Spring生态系统的设计原则(如可移植性和模块化设计)应用于人工智能领域&#…...
【Linux】多进程任务模块
创建多个进程,同时完成任务 task.c #include <sys/types.h> #include <unistd.h> #include<stdio.h> #include <sys/wait.h> int create_process_tasks(Task_fun_t tasks[],int tsak_cnt) {pid_t pid;int i 0;for(i 0;i < 4;i){pid …...
榕壹云预约咨询系统:基于ThinkPHP+MySQL+UniApp打造的灵活预约小程序解决方案
数字化咨询场景的痛点与解决方案 在心理咨询、医疗问诊、法律咨询等需要预约服务的场景中,传统线下预约存在效率低、管理复杂、资源分配不均等问题。榕壹云预约咨询系统基于ThinkPHPMySQLUniApp技术栈开发,为咨询类行业提供了一套高效、安全、可扩展的数…...
鸿蒙NEXT开发LRUCache缓存工具类(单例模式)(ArkTs)
import { util } from kit.ArkTS;/*** LRUCache缓存工具类(单例模式)* author 鸿蒙布道师* since 2025/04/21*/ export class LRUCacheUtil {private static instance: LRUCacheUtil;private lruCache: util.LRUCache<string, any>;/*** 私有构造函…...
opencv 图像矫正的原理
图像矫正的原理是透视变换,下面来介绍一下透视变换的概念。 听名字有点熟,我们在图像旋转里接触过仿射变换,知道仿射变换是把一个二维坐标系转换到另一个二维坐标系的过程,转换过程坐标点的相对位置和属性不发生变换,…...
计算机前沿技术课程论文 K-means算法在图像处理的应用
K-means算法在图像处理的应用 这是本人在计算机前沿技术课程中的课程论文文章,为了方便大家参考学习,我把完整的论文word文档发到了我的资源里,有需要的可以自取。 点击完整资源链接 目录 K-means算法在图像处理的应用摘要:引言1…...
【股票数据API接口37】如何获取股票指数实时数据之Python、Java等多种主流语言实例代码演示通过股票数据接口获取数据
如今,量化分析在股市领域风靡一时,其核心要素在于数据,获取股票数据,是踏上量化分析之路的第一步。你可以选择亲手编写爬虫来抓取,但更便捷的方式,莫过于利用专业的股票数据API接口。自编爬虫虽零成本&a…...
【仓颉 + 鸿蒙 + AI Agent】CangjieMagic框架(17):PlanReactExecutor
CangjieMagic框架:使用华为仓颉编程语言编写,专门用于开发AI Agent,支持鸿蒙、Windows、macOS、Linux等系统。 这篇文章剖析一下 CangjieMagic 框架中的 PlanReactExecutor。 1 PlanReactExecutor的工作原理 #mermaid-svg-OqJUCSoxZkzylbDY…...
