コード例 #1
0
ファイル: KCPConnection.cs プロジェクト: git4paulqu/Net4Unity
        private void InitKCP(UDPSetting setting)
        {
            _kcpObject = new KCPStateObject();
            _kcpObject.Initialize(this, setting.kcp);
            _kcpObject.remote = remoterPoint;

            _kcpObject.sendHandle    = OnKCPSend;
            _kcpObject.receiveHandle = OnKCPReceive;
        }
コード例 #2
0
ファイル: KCPConnection.cs プロジェクト: git4paulqu/Net4Unity
        public void Connect(UDPSetting setting)
        {
            if (null == setting)
            {
                NetDebug.Error("[UDPConnection] the setting can not be null.");
                return;
            }

            this.setting = setting;
            Initialize(this.setting.ioNum);

            remoterPoint = NetUtility.GetIPEndPoint(setting.host, setting.port);
            socket       = new Socket(remoterPoint.AddressFamily,
                                      SocketType.Dgram,
                                      ProtocolType.Udp);
            socket.Connect(remoterPoint);

            InitKCP(setting);
        }
コード例 #3
0
ファイル: UDPTest.cs プロジェクト: git4paulqu/Net4Unity
        public static void Run()
        {
            UDPSetting setting = new UDPSetting("127.0.0.1", 50666, KCPSetting.Defaut);

            server = new UDPServer();
            server.Listen(setting);
            server.onReceiveCallback = (message) =>
            {
                byte[] rev = message.GetRawMessage();
                string s   = System.Text.Encoding.Default.GetString(rev);
                Util.Debug.ServerLog("REV {0}:{1}", message.remote, s);

                server.Send(message.remote, rev);
            };


            int counter = 0;

            client = new KCPConnection();
            client.Connect(setting);
            client.Start();
            client.onReceiveCallback = (message) =>
            {
                byte[] rev = message.GetRawMessage();
                string s   = System.Text.Encoding.Default.GetString(rev);
                Util.Debug.ClientLog("REV {0}:{1}", message.remote, s);

                Thread.Sleep(500);

                counter++;
                byte[] sd = System.Text.Encoding.Default.GetBytes(counter.ToString());
                client.Send(sd);
            };


            byte[] data = System.Text.Encoding.Default.GetBytes(counter.ToString());
            client.Send(data);

            Thread runThread = new Thread(RunThread);

            runThread.Start();
        }
コード例 #4
0
        public void Listen(UDPSetting setting)
        {
            if (null == setting)
            {
                NetDebug.Error("[UDPConnection] the setting can not be null.");
                return;
            }

            this.setting = setting;
            Initialize(this.setting.ioNum);

            localEndPoint = NetUtility.GetIPEndPoint(setting.host, setting.port);
            socket        = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp);
            socket.SetSocketOption(SocketOptionLevel.IP, SocketOptionName.ReuseAddress, true);
            socket.Bind(localEndPoint);

            kcpHandle = new KCPServerHandle(setting);
            kcpHandle.onSendHandle    = OnSend;
            kcpHandle.onReceiveHandle = OnReceive;

            Start();
        }
コード例 #5
0
 public KCPServerHandle(UDPSetting setting)
 {
     this.setting = setting;
 }