Unity学习(十一): Unity中的NetWork使用

本文介绍了NAT穿透技术及其在网络游戏开发中的应用,包括端口机制、Ping命令、Unity API使用以及如何实现服务器与客户端之间的通信。强调了NAT穿透对于解决网络地址不足与提高游戏体验的重要性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 先说一下一些基本概念吧!复习复习。

NAT 穿透技术
NAT,即Network Address Translation,可译为网络地址转换或网络地址翻译。
网络地址转换(NAT,Network Address Translation)属接入广域网(WAN)技术,
是一种将私有(保留)地址转化为合法IP地址的转换技术,它被广泛应用于各种类型
Internet接入方式和各种类型的网络中。原因很简单,NAT不仅完美地解决了lP地址不
足的问题,而且还能够有效地避免来自网络外部的攻击,隐藏并保护网络内部的计算机。


端口  (精辟的解释)
软件领域的端口一般指网络中面向连接服务和无连接服务的通信协议端口,
是一种抽象的软件结构,包括一些数据结构和I/O(基本输入输出)缓冲区。
如果把IP地址比作一间房子 ,端口就是出入这间房子的门。真正的房子只有几个门,
但是一个IP地址的端口可以有65536(即:2^16)个之多!端口是通过端口号来标记的,
端口号只有整数,范围是从0 到65535(2^16-1)。
在Internet上,各主机间通过TCP/IP协议发送和接收数据包,
各个数据包根据其目的主机的ip地址来进行互联网络中的路由选择。
可见,把数据包顺利的传送到目的主机是没有问题的。问题出在哪里呢?
我们知道大多数操作系统都支持多程序(进程)同时运行,那么目的
主机应该把接收到的数据包传送给众多同时运行的进程中的哪一个呢?
显然这个问题有待解决,端口机制便由此被引入进来。
端口决定了 该数据包会给哪个进程,嗦嘎!

Ping:
ping用来检查网络是否通畅或者网络连接速度的命令/值,就是延迟,
单位一般为毫秒, 举个例子 比如说你玩游戏时开枪 如果延迟是100 
那你按键后100毫秒才会开枪 所以说ping越低越有利。

Network.useNat = false;不使用穿透

Network.Connect(connectToIP, connectPort);这一句就可以连接进入某个IP,通过他的端口。

Network.InitializeServer(32, connectPort);这一句是使自身变为服务器,并开放端口。

按钮完毕后:GUILayout.EndVertical();

Network.connections.length()可以得到已连接至服务器的客户端数量

Network.GetAveragePing(Network.connections[0] ));//第一个连接的玩家的平均ping时间。
描述:到给定player 的最后平均ping 时间,以毫秒计。如果没有发现玩家,返回‐1。
Ping 会每隔几秒自动发出。

function OnConnectedToServer()
unction OnDisconnectedFromServer(info : NetworkDisconnection)
function OnFailedToConnect(error: NetworkConnectionError)
function OnPlayerConnected(player: NetworkPlayer)
function OnServerInitialized()
function OnPlayerDisconnected(player: NetworkPlayer)
function OnFailedToConnectToMasterServer(info: NetworkConnectionError)
function OnNetworkInstantiate (info : NetworkMessageInfo)
function OnSerializeNetworkView(stream : BitStream, info : NetworkMessageInfo)
这几个都是触发函数,可以DEBUG得到很多有用信息,或者用于游戏中某些信息的显示。

个人不推荐使用Network来创建MMO。

我在另一篇文章中有讲解:用Unity进行网络游戏开发(一)http://blog.youkuaiyun.com/huiguimoyu/article/details/19757361

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值