局域网游戏联机原理解析

本文涉及的产品
应用实时监控服务-用户体验监控,每月100OCU免费额度
容器镜像服务 ACR,镜像仓库100个 不限时长
Serverless 应用引擎免费试用套餐包,4320000 CU,有效期3个月
简介: 局域网游戏联机原理解析

00 前情提要

十几年前,在那个互联网并不普及的时代,若是有机会你经过一个网吧,你会经常性的看的一个场景。只见网吧里,一排排大屁股的电脑,一条条交叉的线路,一个个插座上七弯八拐的走线,一群赤裸着上半身神情专注的少年们在哪里释放着他们的青春。

image.png

而你走进一看,你大概率会发现他们中大多数玩的是红警、CS,以及后来的魔兽。

也见,他们呼朋唤友,来来往往的客人里,经常几个人约着一起打把红警、CS,红警里的谭雅、CS里的CT,这是属于他们的青春。

而这个时候,我的脑海里就产生了一个疑惑:两个不同电脑里的角色怎么就能够一起玩了呢?是用电线给他们连接到一起得嘛?
image.png

这个问题,当我学习了计算机网络课程后,豁然开朗

01 通俗解释

当你在局域网开启一个联机游戏的时候,会在自己的主机上自动开启一个特定的监听端口,并且也会扫描当前局域网下开启了该端口的主机,就这样,你就快速找到了可以一起联机游戏的主机

可以打个比方,如果把局域网比作一个街道的话,电脑就是街道上的一户人家,则电脑的端口就是这户人家通往这个街道的其中一个门口。当我们开启一个联机游戏的时候,就好比往一个特定门口派出去一个拿着红旗子的孩子站岗。这个孩子,干了两件事情。

一是摇红旗,告诉大家我这道门开着,欢迎大家来找我玩

image.png

二是观察街道的情况,如果也有人在特定的门口摇红旗的话,就告诉家里人

image.png

就这样,街道里的人就知道,如果要想找人玩,那就找有摇红旗子的人玩。


02 举个栗子

以游戏红色警戒联机为例

image.png

1.观察可联机对象

红色警戒是通过TCP/UDP协议进行数据发送的:每台电脑监听一个固定的UDP端口(比如12345),一旦其他电脑打开局域网联机游戏,这台电脑就向整个局域网所有的电脑的12345端口广播说“我可以来联机游戏,快来找我吧”的信息,这样,其他电脑接收到这个信息,就知道有电脑可以联机游戏

2.加入联机游戏

红警在局域网联机游戏过程中使用的是TCP协议,每个玩家对应一个连接。在真正的局域网中,当有电脑A和电脑B进行联机游戏时,电脑A会使用TCP请求和电脑B进行连接,(地址从UDP中获得,端口是固定的12345),如果主机B答应此连接,就会发送些数据(地图信息,其他玩家信息等),这样电脑A的玩家就加入了游戏,此后两电脑就使用这个TCP连接通讯。

image.png


03 延伸思考

在上文中,我们知道了局域网联机是如何进行的,那么接下里我们可以延伸思考一下,对战平台是怎么联机的呢?

image.png

你身处上海,我身处北京,并不是处于一个局域网,那为什么可以通过对战平台来一起打一把魔兽呢?

这里啊,我们可以打个比方,我们不再是门口挥舞旗子的小孩子啦,我们长大了。我们走出房门,一起找了个网吧,到了网吧里,连上了一个局域网,就可以开心的联机咯。

对,实际上对战平台,就是相当于提供了一个中间平台,一个虚拟局域网。这样就可以让联机的双方都能接入一个虚拟局域网,这这个虚拟局域网下,就相当于在局域网内联机了。



04 简单总结

来简单总结一下,

局域网内是如何联机的呢?
当你开启一个联机游戏的时候,会在自己的主机上自动开启一个特定的监听端口,并且也会扫描当前局域网下开启了该端口的主机,就这样,你就快速找到了可以一起联机游戏的主机

对战平台是如何联机的呢?
实际上对战平台,就是相当于提供了一个中间平台,让联机的双方都能接入一个虚拟局域网,这这个虚拟局域网下,就相当于在局域网内联机了

目录
相关文章
|
29天前
|
存储 算法 Java
解析HashSet的工作原理,揭示Set如何利用哈希算法和equals()方法确保元素唯一性,并通过示例代码展示了其“无重复”特性的具体应用
在Java中,Set接口以其独特的“无重复”特性脱颖而出。本文通过解析HashSet的工作原理,揭示Set如何利用哈希算法和equals()方法确保元素唯一性,并通过示例代码展示了其“无重复”特性的具体应用。
41 3
|
1月前
|
C++
【C++】深入解析C/C++内存管理:new与delete的使用及原理(二)
【C++】深入解析C/C++内存管理:new与delete的使用及原理
|
1月前
|
编译器 C++ 开发者
【C++】深入解析C/C++内存管理:new与delete的使用及原理(三)
【C++】深入解析C/C++内存管理:new与delete的使用及原理
|
1月前
|
存储 C语言 C++
【C++】深入解析C/C++内存管理:new与delete的使用及原理(一)
【C++】深入解析C/C++内存管理:new与delete的使用及原理
|
17天前
|
算法 Java 数据库连接
Java连接池技术,从基础概念出发,解析了连接池的工作原理及其重要性
本文详细介绍了Java连接池技术,从基础概念出发,解析了连接池的工作原理及其重要性。连接池通过复用数据库连接,显著提升了应用的性能和稳定性。文章还展示了使用HikariCP连接池的示例代码,帮助读者更好地理解和应用这一技术。
31 1
|
22天前
|
数据采集 存储 编解码
一份简明的 Base64 原理解析
Base64 编码器的原理,其实很简单,花一点点时间学会它,你就又消除了一个知识盲点。
61 3
|
4天前
|
存储 供应链 物联网
深入解析区块链技术的核心原理与应用前景
深入解析区块链技术的核心原理与应用前景
|
4天前
|
存储 供应链 安全
深度解析区块链技术的核心原理与应用前景
深度解析区块链技术的核心原理与应用前景
12 0
|
1月前
|
前端开发 Java 应用服务中间件
21张图解析Tomcat运行原理与架构全貌
【10月更文挑战第2天】本文通过21张图详细解析了Tomcat的运行原理与架构。Tomcat作为Java Web开发中最流行的Web服务器之一,其架构设计精妙。文章首先介绍了Tomcat的基本组件:Connector(连接器)负责网络通信,Container(容器)处理业务逻辑。连接器内部包括EndPoint、Processor和Adapter等组件,分别处理通信、协议解析和请求封装。容器采用多级结构(Engine、Host、Context、Wrapper),并通过Mapper组件进行请求路由。文章还探讨了Tomcat的生命周期管理、启动与停止机制,并通过源码分析展示了请求处理流程。
|
1月前
|
搜索推荐 Shell
解析排序算法:十大排序方法的工作原理与性能比较
解析排序算法:十大排序方法的工作原理与性能比较
51 9

推荐镜像

更多