Beispiel #1
0
    static void Main(string[] args)
    {
        NetworkDebuger.IsUnity    = false;
        NetworkDebuger.EnableLog  = true;
        NetworkDebuger.EnableSave = true;
        NetworkDebuger.DeleteFiles();
        NetworkDebuger.Log(nameof(NetworkDebuger) + " Init");



        //
        SqlManager.Init();
        ServerDataManager.Init();
        new AsyncIOCPServer(IP, portTCP, 30000);
        UdpServer.Instance.Init(IP, portUDP);


        while (true)
        {
            string msg = Console.ReadLine();
            if (msg.Contains("quit"))//quit-1-1
            {
                string[] sp     = msg.Split(new string[] { "-" }, StringSplitOptions.RemoveEmptyEntries);
                int      roomID = int.Parse(sp[1]);
                int      unique = int.Parse(sp[2]);

                bool isQuit = ServerDataManager.instance.allRoom.RoomList[roomID].Quit(unique);
                Console.WriteLine("踢房间->" + roomID + " 站位->" + unique + " 结果->" + isQuit);
            }
            if (msg == "test")
            {
            }
        }
    }
 public void Start()
 {
     NetworkDebuger.IsUnity    = true;
     NetworkDebuger.EnableLog  = true;
     NetworkDebuger.EnableSave = true;
     NetworkDebuger.Log("Awake()");
 }
Beispiel #3
0
        public void Init()
        {
            NetworkDebuger.IsUnity    = false;
            NetworkDebuger.EnableLog  = true;
            NetworkDebuger.EnableSave = true;
            NetworkDebuger.Log(nameof(NetworkDebuger) + " Init");


            //开启非可靠传输udp监听客户端连接
            IPEndPoint localIpep = new IPEndPoint(IPAddress.Parse(IP), PORT);

            //myClient = new UdpClient(localIpep);
            //thrRecv = new Thread(ConnectReceive);
            //thrRecv.Start(myClient);
            NetworkDebuger.Log(GetType().Name + " Init");
            //kcpSocket
            //k_Socket = new KCPSocket(PORT, 1, AddressFamily.InterNetwork);


            KCPPlayer p1 = new KCPPlayer();

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

            Thread th = new Thread(SetUpdate);

            th.IsBackground = true;
            th.Start(p1);
            string writeIN = Console.ReadLine();

            Console.WriteLine("???????");
        }
Beispiel #4
0
        public void Init(IPEndPoint localPoint, IPEndPoint remotePoint)
        {
            LOG_TAG = "KCPPlayer[" + remotePoint + "]";

            m_RemotePoint = remotePoint;

            m_Socket = new KCPSocket(localPoint.Port, 1, AddressFamily.InterNetwork);
            //m_Socket.AddReceiveListener(KCPProxy.IPEP_Any, OnReceiveAny);
            m_Socket.AddReceiveListener(remotePoint, OnReceive);

            NetworkDebuger.Log(LOG_TAG, " 连接.");
        }
            //public void Init(string name, IPAddress ipa, int localPort, int remotePort)
            //{
            //    m_Name = name;
            //    LOG_TAG = "KCPPlayer[" + m_Name + "]";

            //    m_RemotePoint = new IPEndPoint(ipa, remotePort);

            //    m_Socket = new KCPSocket(localPort, 1, AddressFamily.InterNetwork);
            //    //m_Socket.AddReceiveListener(KCPProxy.IPEP_Any, OnReceiveAny);
            //    m_Socket.AddReceiveListener(m_RemotePoint, OnReceive);

            //    NetworkDebuger.Log("Init()", "name:{0}, localPort:{1}, remotePort:{2}", name, localPort, remotePort);
            //}
            public void Init(IPEndPoint localPoint, IPEndPoint remotePoint)
            {
                m_Name  = "Player";
                LOG_TAG = "KCPPlayer[" + m_Name + "]";

                m_RemotePoint = remotePoint;

                m_Socket = new KCPSocket(localPoint.Port, 1, AddressFamily.InterNetwork);
                //m_Socket.AddReceiveListener(KCPProxy.IPEP_Any, OnReceiveAny);
                m_Socket.AddReceiveListener(m_RemotePoint, OnReceive);

                NetworkDebuger.Log("Init()", "name:{0}, localPort:{1}, remotePort:{2}", m_Name, localPoint, remotePoint);
            }
            public void Init(string name, int localPort, int remotePort)
            {
                m_Name  = name;
                LOG_TAG = "KCPPlayer[" + m_Name + "]";

                IPAddress ipa = IPAddress.Parse(UnityEngine.Network.player.ipAddress);

                m_RemotePoint = new IPEndPoint(ipa, remotePort);

                m_Socket = new KCPSocket(localPort, 1, AddressFamily.InterNetwork);
                m_Socket.AddReceiveListener(KCPProxy.IPEP_Any, OnReceiveAny);
                m_Socket.AddReceiveListener(m_RemotePoint, OnReceive);

                NetworkDebuger.Log("Init() name:{0}, localPort:{1}, remotePort:{2}", name, localPort, remotePort);
            }
        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());
        }
Beispiel #8
0
        private void ConnectReceive(object obj)
        {
            UdpClient  myClient   = obj as UdpClient;
            IPEndPoint remoteIpep = new IPEndPoint(IPAddress.Any, 0);

            while (true)
            {
                try
                {
                    byte[] bytRecv = myClient.Receive(ref remoteIpep);
                    ThreadPool.QueueUserWorkItem(DealConnect, new object[] { remoteIpep, bytRecv });
                }
                catch (Exception ex)
                {
                    NetworkDebuger.LogException(ex.Message);
                }
            }
        }
        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);
                }
            }
        }
Beispiel #10
0
            private void OnReceive(byte[] buffer, int size, IPEndPoint remotePoint)
            {
                string str = Encoding.UTF8.GetString(buffer, 0, size);

                NetworkDebuger.Log("OnReceive() " + remotePoint + ":" + str);
            }
Beispiel #11
0
 public void Log4Debug(string msg)
 {
     NetworkDebuger.Log(this.GetType().Name + ":" + msg);
 }
Beispiel #12
0
    /// <summary>
    /// byte[] 转换为 MessageXieYi
    /// </summary>
    /// <param name="buffer">字节数组缓冲器。</param>
    /// <returns></returns>
    public static MessageXieYi FromBytes(byte[] buffer)
    {
        int bufferLength = buffer.Length;

        int limet = 2;

        if (bufferLength < XieYiLength + limet)
        {
            return(null);
        }

        MessageXieYi messageXieYi = new MessageXieYi();

        using (MemoryStream memoryStream = new MemoryStream(buffer))    //将字节数组填充至内存流
        {
            BinaryReader binaryReader = new BinaryReader(memoryStream); //以二进制读取器读取该流内容

            byte start = binaryReader.ReadByte();                       //把开头的标识符去掉
            if (start != markStart)
            {
                string strError = "";
                for (int i = 0; i < buffer.Length; i++)
                {
                    strError += "_" + buffer[i];
                }
                string info = "开头不是标识符:" + strError;
                NetworkDebuger.LogException(info);
                return(null);
            }

            messageXieYi.xieYiFirstFlag       = binaryReader.ReadByte();  //读取协议一级标志,读1个字节
            messageXieYi.xieYiSecondFlag      = binaryReader.ReadByte();  //读取协议二级标志,读1个字节
            messageXieYi.messageContentLength = binaryReader.ReadInt32(); //读取实际消息长度,读4个字节

            //如果【进来的Bytes长度】大于【一个完整的MessageXieYi长度】
            if ((bufferLength - 6) > messageXieYi.messageContentLength)
            {
                messageXieYi.messageContent = binaryReader.ReadBytes(messageXieYi.messageContentLength); //读取实际消息内容,从第7个字节开始读
                //messageXieYi.duoYvBytes = binaryReader.ReadBytes(bufferLength - 6 - messageXieYi.messageContentLength);
            }

            //如果【进来的Bytes长度】等于【一个完整的MessageXieYi长度】
            if ((bufferLength - 6) == messageXieYi.messageContentLength)
            {
                messageXieYi.messageContent = binaryReader.ReadBytes(messageXieYi.messageContentLength); //读取实际消息内容,从第7个字节开始读
            }
            //如果【进来的Bytes长度】小于【一个完整的MessageXieYi长度】
            if ((bufferLength - 6) < messageXieYi.messageContentLength)
            {
                string info = "数据接收不齐:" + (bufferLength - 6) + "/" + messageXieYi.messageContentLength;
                NetworkDebuger.LogException(info);
                return(null);
            }

            byte end = binaryReader.ReadByte();
            if (end != markEnd)
            {
                string info = "结尾:" + end + "消息长度:" + messageXieYi.messageContentLength;
                NetworkDebuger.LogException(info);
                return(null);
            }

            binaryReader.Close(); //关闭二进制读取器,是否资源
        }
        return(messageXieYi);     //返回消息协议对象
    }
Beispiel #13
0
    //private static void Test()
    //{
    //    string sql = SqlManager.SelectWhere(TableName.register);
    //    List<Register> re = SqlManager.instance.DataRead(sql, new Func<SqlDataReader, List<Register>>(Register.BackDatas));
    //}



    public static void Log4Debug(string msg)
    {
        NetworkDebuger.Log(":" + msg);
    }