【unity3D网络实战】 第一章 - Echo

1.1 藏在幕后的服务端

网络游戏架构:
在这里插入图片描述

客户端和客户端之间通过服务端的消息转发进行通信。例如在一款射击游戏中,玩家1移动,玩家2会在自己的屏幕中看到玩家1的位置变化,这个过程称为“位置同步”:
在这里插入图片描述
在这里插入图片描述

服务端分区:
在这里插入图片描述

各个服务端相互连接,形成服务端集群:
在这里插入图片描述

客户端和服务端之间、服务端和服务端之间都是使用TCP网络通信的。

1.2 网络连接的端点:Socket

在这里插入图片描述
网络上的两个程序通过一个双向的通信连接实现数据交换,这个连接的一端称为一个Socket。一个Socket包含了进行网络通信必需的五种信息:连接使用的协议、本地主机的IP地址、本地的协议端口、远程主机的IP地址和远程协议端口。如果把Socket理解成一台手机,那么本地主机IP地址和端口相当于自己的手机号码,远程主机IP地址和端口相当于对方的号码。至少需要两台手机才能打电话,同样地,至少需要两个Socket才能进行网络通信

端口 port

端口是设备与外界通信交流的出口。

每台计算机可以分配0到65535共65536个端口。

每个Socket连接都是从一台计算机的一个端口连接到另外一台计算机的某个端口。

在这里插入图片描述

Socket IP 端口

每一个进程(客户端1、客户端2、服务端)可以拥有多个Socket,每个Socket通过不同端口与其他计算机连接

每一条Socket连接代表着本地Socket→本地端口→网络介质→远程端口→远程Socket的链路

在这里插入图片描述
Socket通信分也为“连接方”和“监听方”:

连接方使用不同的端口连接,监听方只使用一个端口监听。

图1-10中,Socket E 在 Socket A 连接后产生,代表着 Socket A 和服务端的连接,Socket F 在Socket B 连接后产生,代表着 Socket B 和服务端的连接。

在这里插入图片描述

Socket 通信的流程

在这里插入图片描述
1)开启一个连接之前,需要创建一个Socket对象(使用API Socket),然后绑定本地使用的端口(使用API Bind)
对服务端而言,绑定的步骤相当于给手机插上SIM卡,确定了“手机号”。对客户端而言,连接时(使用APIConnect)会由系统分配端口,可以省去绑定步骤

2)服务端开启监听(使用API Listen),等待客户端接入。相当于电话开机,等待别人呼叫。

3)客户端连接服务器(使用API Connect),相当于手机拨号。

4)服务器接受连接(使用API Accept),相当于接听电话并说出“喂”。

通过这4个步骤,成功建立连接,可以收发数据。

5)客户端和服务端通过 SendReceive 等API收发数据,操作系统会自动完成数据的确认、重传等步骤,确保传输的数据准确无误。

6)某一方关闭连接(使用API Close),操作系统会执行四次挥手的步骤,关闭双方连接,相当于挂断电话。

TCP和UDP协议

TCP:面向连接的、可靠的、基于字节流的传输层通信协议
UDP:无连接的、不可靠的、但传输效率较高的协议

游戏开发最常用的是TCP协议,所以本书也以TCP为主。

1.3 开始网络编程:Echo

在这里插入图片描述
Echo程序是网络编程中最基础的案例。

建立网络连接后,客户端向服务端发送一行文本,服务端收到后将文本发送回客户端。

Echo程序分为客户端和服务端两个部分,客户端部分使用Unity实现,为了技术的统一,服务端使用C#语言实现。

客户端程序(unity创建脚本)

  • 2
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
好的,下面是回复: 在Linux网络实战(二)中,我们学习了如何搭建一个Web服务器。Web服务器是用于提供网站服务的服务器,我们可以使用Apache或Nginx等软件来搭建。在本教程中,我们使用了Apache来搭建Web服务器。 首先,我们需要安装Apache软件。在Ubuntu系统中,可以使用以下命令进行安装: sudo apt-get install apache2 安装完成后,我们需要配置Apache。配置文件位于/etc/apache2/目录下,我们可以通过修改配置文件来配置Apache。例如,我们可以修改/etc/apache2/sites-available/default文件来配置默认网站。 配置完成后,我们可以将网站文件放置在/var/www/html/目录下。在该目录下创建一个index.html文件,内容为“Hello World!”。然后,我们可以使用浏览器访问服务器的IP地址,就可以看到“Hello World!”的页面了。 除了搭建简单的静态网站,我们还可以使用PHP等语言来开发动态网站。在Ubuntu系统中,可以使用以下命令安装PHP: sudo apt-get install php libapache2-mod-php 安装完成后,我们可以在/var/www/html/目录下创建一个index.php文件,内容为: <?php echo "Hello World!"; ?> 然后,我们可以使用浏览器访问服务器的IP地址,就可以看到“Hello World!”的页面了。 总之,搭建Web服务器是Linux系统中非常基础的操作,掌握这个技能对于学习Linux系统和Web开发都非常有帮助。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值