为方便您的阅读,可戳下方蓝色字体快速跳转

  • 00 前情提要
  • 01 通俗解释
  • 02 举个栗子
  • 03 延伸思考
  • 04 简单总结

00 前情提要

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


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

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

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

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

01 通俗解释

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

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

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


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


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

02 举个栗子

以游戏红色警戒联机为例


1.观察可联机对象

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

2.加入联机游戏

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

03 延伸思考

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


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

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

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

04 简单总结

来简单总结一下,

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

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

局域网游戏联机原理解析相关推荐

  1. 局域网游戏联机大厅建主模式实现附(Unity)

    最近正在用Unity做一个类似三国杀的卡牌游戏,网上也找不到什么东西参考,只好自己动手一点点解决问题,由于服务器不是很熟,于是决定一边学Photon一边先做个局域网联机的玩玩,局域网联机我决定参考CS ...

  2. 游戏外挂原理解析与制作 - [内存数值修改类 篇四]

    前三篇的博文结合了C#的Demo对内存数据修改一类的挂剖析了原理,利用C#语言调用Windows API,我们其实已经写出了一个简单的内存扫描工具,但是它存在一些缺陷,比如说只能所搜索单一类型数值(整 ...

  3. rust 局域网联机_腐蚀怎么搭建服务器联机 游戏联机方法一览

    联机玩法是游戏中非常有趣的一种模式,不过许多玩家目前似乎对腐蚀怎么搭建服务器联机不太了解,为了让大家可以更顺利的上手,于是小编这里就为大家带来了游戏联机方法的详细介绍,如果你也对此有疑问的话就一起了解 ...

  4. 使用Hook拦截sendto函数解决虚拟局域网部分游戏联机找不到房间的问题——以文明6为例

    正文 重要提醒(2023-02-13):本文部分内容存在bug,目前正在调试修改,会在一段时间之后更新 重要提醒(2023-02-14):目前已修复主要bug,会在一段时间之后更新,本文计划重写大部分 ...

  5. 如何写一个简单的局域网游戏

    今天拜读了马士兵TankWar的网络大战 他自己说这个非常土.所以学习学习原理啦. 看看怎么写一个基础的网络版的游戏,当然不能和大型游戏的服务器相比..简单的局域网游戏应该怎么开发?主要看看他怎么拉开 ...

  6. java版怎么做猪人塔_我的世界猪人塔详解 各种猪人塔制作教程及原理解析

    我的世界猪人塔详解 各种猪人塔制作教程及原理解析.那下面就给大家将我的世界中几种猪人塔的制作教程以及原理一一给大家分析一下吧!那感兴趣的玩家不妨进来看看下面的这些猪人塔哦!希望对大家有所帮助. 游戏园 ...

  7. Tomcat 架构原理解析到架构设计借鉴

    ‍ 点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试文章 Tomcat 架构原理解析到架构设计借鉴 Tomcat 发展这 ...

  8. Python 中 -m 的典型用法、原理解析与发展演变

    在命令行中使用 Python 时,它可以接收大约 20 个选项(option),语法格式如下: python [-bBdEhiIOqsSuvVWx?] [-c command | -m module- ...

  9. camera (14)---智能手机双摄像头原理解析:RGB +Depth

    智能手机双摄像头原理解析:RGB +Depth 智能手机摄像头中:普通彩色相机(RGB) + 深度相机(Depth)的技术原理. 首先来解释一下什么是深度相机吧. 深度相机 顾名思义,深度相机就是可以 ...

  10. python解析原理_Python 中 -m 的典型用法、原理解析与发展演变

    在命令行中使用 Python 时,它可以接收大约 20 个选项(option),语法格式如下: python [-bBdEhiIOqsSuvVWx?] [-c command | -m module- ...

最新文章

  1. 小白都能看懂的目前主流加密MD5验签
  2. 【PAT乙级】1031 查验身份证 (15 分)
  3. cat 常用的日志分析架构方案_芯片失效分析常用方法及解决方案
  4. win10下安装ubuntu,双系统,免U盘
  5. 常用的LINQ to SQL 用法
  6. 广告创意还是侮辱女性?全棉时代卸妆巾广告被骂上热搜......
  7. 基于JAVA+Servlet+JSP+MYSQL的会议管理系统
  8. 什么是动态链接库(DLL)以及常见问题
  9. word字间距异常处理方式
  10. FastJSON、Gson、Jackson(简单了解使用)
  11. web服务器和数据库服务器不在同一台机器上,如何连接?
  12. Mysql存储过程和函数区别介绍
  13. AndroidStudio选中代码后,光标自动变粗,自动变成ins模式的解决方法
  14. 强哥日常高效工作流骨灰级玩家培训课程
  15. EXCEL工作表保护密码忘记,撤消工作表保护
  16. ssh整合错误 0 nanoseconds spent acquiring 0 JDBC connections;
  17. 禁用笔记本自带键盘技巧
  18. 扦插技术图解_扦插葡萄生根最快方法(图解)
  19. undefined is not a function错误解决
  20. 统计学习导论之R语言应用(三):线性回归R语言代码实战

热门文章

  1. js调用数科阅读器_js调用ocx控件(读写IC卡
  2. ofd软件linux,数科和福昕OFD软件同银河麒麟桌面操作系统完成互相兼容认证
  3. 定义类,super的使用,super的使用
  4. 无法安装驱动程序 此计算机上不存在英特尔适配器,无法安装驱动程序。此计算机不存在英特尔(R)适配器...
  5. Excel远程连接Oracle,excel连接数据库_怎么用oracle命令连接远程数据库�9�3
  6. MySQL的连接字符串 concat、concat_ws、group_concat、repeat()函数用法
  7. 安装magicdrawUML出现的问题
  8. 数据分析之A股市场技术分析是否可行
  9. NotifyIcon用法
  10. WPF利用NotifyIcon创建任务栏图标(菜鸟教程)