首先建立一个脚本,名字自取。这里的联网通信方法是通过电脑端口模拟一个服务器出来,所以只能进行同一台PC中的多个程序通信(即PC同时作为服务端和客户端),不能实现多台PC的局域网通信。要想实现局域网通信,看来你需要个服务器!另外端口号可以在cmd里输入netstat -an命令查询,使用正在监听(LISTENING)的空闲端口就可以了。
using UnityEngine;
using System.Collections;
public class Chat : MonoBehaviour {
private string ip="127.0.0.1";//定义远程服务器ip(这里为本地)
private int port=135;//定义服务器端口
private int connectCount=15;//限制连接数量为15个用户
private bool useNAT=false;//是否启用网络地址转换器
private string recMes="";//接收到的消息
private string sendMes="";//要发送的消息
// Use this for initialization
void Start () {
}
// Update is called once per frame
void Update () {
}
void OnGUI(){
switch (Network.peerType) {
//服务器是否开启,没有与服务器连接时
case NetworkPeerType.Disconnected:
StartCreat();
break;
//启动服务器
case NetworkPeerType.Server:
OnServer();
break;
//启动客户端
case NetworkPeerType.Client:
OnClient();
break;
//尝试连接
case NetworkPeerType.Connecting:
Debug.Log("连接中");
break;
}
}
void StartCreat(){
GUILayout.BeginVertical ();
//新建服务器连接
if (GUILayout.Button ("新建服务器")) {
//初始化服务器端口,服务器创建成功后,Network.peerType变为NetworkPeerType.Client
NetworkConnectionError error=Network.InitializeServer(connectCount,port,useNAT);
Debug.Log(error);
}
//客户端是否连接服务器
if (GUILayout.Button ("连接服务器")) {
//连接至服务器,与服务器连接成功后,Network.peerType变为NetworkPeerType.Client
NetworkConnectionError error=Network.Connect(ip,port);
Debug.Log(error);
}
GUILayout.EndVertical ();
}
void OnServer(){
GUILayout.Label("新建服务器成功,等待客户连接");
//得到的ip与端口
//string ip = Network.player.ipAddress;
//int port = Network.player.port;
//GUILayout.Label ("IP地址:" + ip + ".\n端口号:" + port);
//连接到服务器的所有客户端
int length = Network.connections.Length;
//遍历所有客户端并获取IP与端口号
for