先说一下一些基本概念吧!复习复习。
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.csdn.net/huiguimoyu/article/details/19757361
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)