Networking 网络无法连接到服务器c#unity5

Networking 网络无法连接到服务器c#unity5,networking,unity3d,Networking,Unity3d,我在unity5中完成了网络C#script。 这是基于 在30分钟的教程之前,一切都很顺利。 我做了构建,运行它,在构建中启动服务器,然后在unity开始游戏中,刷新主机,弹出一个服务器,我点击它,什么也没发生,然后我收到消息:连接到10.0.0.100:25001失败,因为这个系统已经连接。当网络连接断开得太快,远程系统无法接收断开通知时,例如在使用network.disconnect(0)时,可能会发生这种情况 我的剧本: public class NetworkManager : Mon

我在unity5中完成了网络C#script。 这是基于 在30分钟的教程之前,一切都很顺利。 我做了构建,运行它,在构建中启动服务器,然后在unity开始游戏中,刷新主机,弹出一个服务器,我点击它,什么也没发生,然后我收到消息:连接到10.0.0.100:25001失败,因为这个系统已经连接。当网络连接断开得太快,远程系统无法接收断开通知时,例如在使用network.disconnect(0)时,可能会发生这种情况

我的剧本:

public class NetworkManager : MonoBehaviour {
    public string gameName = "DP_Network_server";
    private bool refreshing;
    private HostData[] hostList;


    void OnGUI() {

        if (!Network.isClient && !Network.isServer) {

            if (GUI.Button (new Rect (10, 10, 150, 100), "Start Server")) {
                Debug.Log ("Starting Server");
                startServer ();
            }   

            if (GUI.Button (new Rect (10, 200, 150, 100), "Refresh Hosts")) {
                Debug.Log ("Refreshing");
                refreshHostList ();
            }

            if (hostList != null) {
                for (int i = 0; i < hostList.Length; i++) {

                    GUI.Button (new Rect (400, 100 + (110 * i), 300, 100), hostList [i].gameName);
                    Network.Connect (hostList [i]);

                }
            }
        }
}

void startServer() {
    Network.InitializeServer(32, 25001, !Network.HavePublicAddress());
    MasterServer.RegisterHost(gameName, "Double Planet Game", "This is test of networking");
}

void OnServerInitialized()
{
    Debug.Log("Server Initializied");
}

void OnMasterServerEvent (MasterServerEvent mse) {
    if (mse == MasterServerEvent.RegistrationSucceeded) {
        Debug.Log ("Registered Server");        
    }
}

void refreshHostList() {
    MasterServer.RequestHostList(gameName);
    refreshing = true;
    }

void Update (){
    if (refreshing) {
        if (MasterServer.PollHostList().Length > 0) {
        refreshing = false;
            Debug.Log (MasterServer.PollHostList ().Length);
            hostList = MasterServer.PollHostList();

        }

    }

}
公共类网络管理器:MonoBehavior{
公共字符串gameName=“DP\U网络\U服务器”;
私人厕所;
私有主机数据[]主机列表;
void OnGUI(){
如果(!Network.isClient&&!Network.isServer){
if(GUI.Button(新的Rect(10、10、150、100),“启动服务器”)){
Log(“启动服务器”);
startServer();
}   
if(GUI.Button(新的Rect(10200150100),“刷新主机”)){
Debug.Log(“刷新”);
刷新主机列表();
}
if(主机列表!=null){
for(int i=0;i0){
刷新=错误;
Log(MasterServer.PollHostList().Length);
hostList=MasterServer.PollHostList();
}
}
}
}


我在“项目设置”>“播放器后台播放”中进行了设置,并将网络视图附加到播放器。网络连接(主机列表[i]);有问题吗

好吧,我认为有一个原因,当客户端开始连接到服务器但没有完成时,它会继续尝试连接每个帧,您可以让它只连接一次。 也许您可以将其更改为:

void OnGUI(){

if(!Network.isClient&&!Network.isServer){
if(GUI.Button(新的Rect(10、10、150、100),“启动服务器”)){
Log(“启动服务器”);
startServer();
}   
if(GUI.Button(新的Rect(10200150100),“刷新主机”)){
Debug.Log(“刷新”);
刷新主机列表();
if(主机列表!=null){
for(int i=0;i
    if (!Network.isClient && !Network.isServer) {
        if (GUI.Button (new Rect (10, 10, 150, 100), "Start Server")) {
            Debug.Log ("Starting Server");
            startServer ();
        }   

        if (GUI.Button (new Rect (10, 200, 150, 100), "Refresh Hosts")) {
            Debug.Log ("Refreshing");
            refreshHostList ();
            if (hostList != null) {
            for (int i = 0; i < hostList.Length; i++) {

                GUI.Button (new Rect (400, 100 + (110 * i), 300, 100), hostList [i].gameName);
                Network.Connect (hostList [i]);

            }
       }
     }
 }