示例#1
0
    //Server - 연결 시작
    public void UdpConnection(DataPacket packet)
    {
        Debug.Log("연결 시작");
        UDPConnectionPacket udpConnectionPacket = new UDPConnectionPacket(packet.msg);
        UDPConnectionData   udpConnectionData   = udpConnectionPacket.GetData();

        DataSender.Instance.udpId = new int[udpConnectionData.playerNum];

        for (int userIndex = 0; userIndex < udpConnectionData.playerNum; userIndex++)
        {
            string endPoint = udpConnectionData.endPoint[userIndex];

            if (endPoint == NetworkManager.Instance.ServerSock.LocalEndPoint.ToString())
            {
                NetworkManager.Instance.SetMyIndex(userIndex);
            }
        }

        StartCoroutine(SceneChanger.Instance.CheckLoading(udpConnectionData.playerNum + 3));

        NetworkManager.Instance.InitializeUdpConnection();
        NetworkManager.Instance.ReSendManager.Initialize(udpConnectionData.playerNum);
        DataSender.Instance.InitializeUdpSend(NetworkManager.Instance.ClientSock);

        for (int userIndex = 0; userIndex < udpConnectionData.playerNum; userIndex++)
        {
            string endPoint = udpConnectionData.endPoint[userIndex];
            string ip       = endPoint.Substring(0, endPoint.IndexOf(":"));

            IPEndPoint newEndPoint = new IPEndPoint(IPAddress.Parse(ip), NetworkManager.clientPortNumber + userIndex);

            NetworkManager.Instance.UserIndex.Add(new UserIndex(newEndPoint, userIndex));

            if (endPoint != NetworkManager.Instance.ServerSock.LocalEndPoint.ToString())
            {
                Debug.Log("연결 아이피 : " + newEndPoint.ToString());
                NetworkManager.Instance.ConnectP2P(newEndPoint);
            }
        }

        DungeonManager.Instance.InitializePlayer(udpConnectionData.playerNum);

        DataSender.Instance.RequestMonsterSpawnList(DungeonManager.Instance.DungeonId, DungeonManager.Instance.DungeonLevel);
        DataSender.Instance.RequestMonsterStatusData(DungeonManager.Instance.DungeonId, DungeonManager.Instance.DungeonLevel);
    }
示例#2
0
    //Server - 연결 시작
    public void UdpConnection(DataPacket packet)
    {
        Debug.Log("연결 시작");
        UDPConnectionPacket udpConnectionPacket = new UDPConnectionPacket(packet.msg);
        UDPConnectionData   udpConnectionData   = udpConnectionPacket.GetData();

        DataSender.Instance.udpId = new int[udpConnectionData.playerNum];

        for (int userIndex = 0; userIndex < udpConnectionData.playerNum; userIndex++)
        {
            string endPoint = udpConnectionData.endPoint[userIndex];

            if (endPoint == networkManager.ServerSock.LocalEndPoint.ToString())
            {
                networkManager.SetMyIndex(userIndex);
            }
        }

        networkManager.InitializeUdpConnection();
        networkManager.ReSendManager.Initialize(udpConnectionData.playerNum);
        DataSender.Instance.InitializeUdpSend(networkManager.ClientSock);

        for (int userIndex = 0; userIndex < udpConnectionData.playerNum; userIndex++)
        {
            string endPoint = udpConnectionData.endPoint[userIndex];
            string ip       = endPoint.Substring(0, endPoint.IndexOf(":"));

            IPEndPoint newEndPoint = new IPEndPoint(IPAddress.Parse(ip), NetworkManager.clientPortNumber + userIndex);

            networkManager.UserIndex.Add(new UserIndex(newEndPoint, userIndex));

            if (endPoint != networkManager.ServerSock.LocalEndPoint.ToString())
            {
                Debug.Log("연결 아이피 : " + newEndPoint.ToString());
                networkManager.ConnectP2P(newEndPoint);
            }
        }

        if (SceneChanger.Instance.CurrentScene == SceneChanger.SceneName.LoadingScene)
        {
            SceneChanger.Instance.LoadingCheck[2] = true;
        }
    }