예제 #1
0
    public void ConnectedToServer()
    {
        //获取UdpClient的发送端口
        //k_Socket = new KCPSocket(12345, 1, AddressFamily.InterNetwork);
        //IPEndPoint localIpep = new IPEndPoint(IPAddress.Parse(Network.player.ipAddress), 12000);
        IPEndPoint localIpep = new IPEndPoint(IPAddress.Any, 0);

        remoteIpep = new IPEndPoint(IPAddress.Parse("192.168.1.110"), 12000);
        kcpClient  = new KCPPlayer();
        //p2.Init("Player", IPAddress.Parse(Network.player.ipAddress), 12345, 12000);
        kcpClient.Init(localIpep, remoteIpep, OnReceive);

        UDPLogin login = new UDPLogin()
        {
            login  = DataController.instance.UserID,
            roomID = DataController.instance.MyRoomInfo.RoomID,
            unique = DataController.instance.MyLocateIndex
        };

        byte[] message = SerializeHelper.Serialize <UDPLogin>(login);
        //因为SendSave限制在断线重连时的重连,所以得绕过判断
        MessageXieYi msgxy = new MessageXieYi((byte)MessageConvention.setUDP, 0, message);

        byte[] sendBuffer = msgxy.ToBytes();
        SendMessage(sendBuffer);
    }
예제 #2
0
    public void Init(string IP, int port)
    {
        //开启非可靠传输udp监听客户端连接
        IPEndPoint localIpep = new IPEndPoint(IPAddress.Parse(IP), port);

        kcpServer = new KCPPlayer();
        //p1.Init(localIpep, new IPEndPoint(IPAddress.Parse("192.168.1.111"), 12345));
        kcpServer.Init(localIpep, new IPEndPoint(IPAddress.Any, 0), OnReceive);

        Thread th = new Thread(SetUpdate);

        th.IsBackground = true;
        th.Start();

        Log4Debug("初始化UDP Socket成功。");
    }
예제 #3
0
        public void ConnectedToServer()
        {
            //获取UdpClient的发送端口
            //k_Socket = new KCPSocket(12345, 1, AddressFamily.InterNetwork);
            //IPEndPoint localIpep = new IPEndPoint(IPAddress.Parse(Network.player.ipAddress), 12000);
            IPEndPoint localIpep  = new IPEndPoint(IPAddress.Any, 0);
            IPEndPoint remoteIpep = new IPEndPoint(IPAddress.Parse("192.168.1.110"), 12000);

            p2 = new KCPPlayer();
            //p2.Init("Player", IPAddress.Parse(Network.player.ipAddress), 12345, 12000);
            p2.Init(localIpep, remoteIpep);

            byte[] sendBytes = Encoding.UTF8.GetBytes(ConnectInfo);
            p2.SendMessage(sendBytes);

            m_initKcp = true;
        }
예제 #4
0
        private IEnumerator Start()
        {
            yield return(new WaitForSecondsRealtime(3f));

            NetworkDebuger.EnableLog  = true;
            NetworkDebuger.EnableSave = true;
            NetworkDebuger.Log("Awake()");

            p1 = new KCPPlayer();
            p1.Init("Player1", 12345, 12346);

            p2 = new KCPPlayer();
            p2.Init("Player2", 12346, 12345);
            m_initKcp = true;
            //
            StartCoroutine(sendMsgLoop());
        }
예제 #5
0
        private void ConnectReceive(object obj)
        {
            UdpClient  myClient   = obj as UdpClient;
            IPEndPoint remoteIpep = new IPEndPoint(IPAddress.Parse("192.168.1.110"), 12000);

            while (true)
            {
                try
                {
                    byte[] bytRecv = myClient.Receive(ref remoteIpep);
                    string info    = Encoding.UTF8.GetString(bytRecv);
                    if (info.Equals(ConnectInfo))
                    {
                        p2 = new KCPPlayer();
                        //p2.Init(k_Socket, new IPEndPoint(IPAddress.Parse("192.168.1.110"), 12000));
                        m_initKcp = true;
                    }
                }
                catch (Exception ex)
                {
                    NetworkDebuger.LogException(ex.Message);
                }
            }
        }