public void SetUp()
        {
            // create new server & received list for each test
            serverReceived = new List<byte[]>();
            server = new KcpServer(
                (connectionId) => {},
                (connectionId, message) => {
                    byte[] copy = new byte[message.Count];
                    Buffer.BlockCopy(message.Array, message.Offset, copy, 0, message.Count);
                    serverReceived.Add(copy);
                },
                (connectionId) => {},
                NoDelay,
                Interval,
                0,
                true,
                serverSendWindowSize,
                serverReceiveWindowSize
            );
            server.NoDelay = NoDelay;
            server.Interval = Interval;

            // create new client & received list for each test
            clientReceived = new List<byte[]>();
            client = new KcpClient(
                () => {},
                (message) => {
                    byte[] copy = new byte[message.Count];
                    Buffer.BlockCopy(message.Array, message.Offset, copy, 0, message.Count);
                    clientReceived.Add(copy);
                },
                () => {}
            );
        }
Exemple #2
0
        public void SetUp()
        {
            // logging
            Log.Info    = Debug.Log;
            Log.Warning = Debug.LogWarning;
            Log.Error   = Debug.LogError;

            // create new server & received list for each test
            serverReceived = new List <byte[]>();
            server         = new KcpServer(
                (connectionId) => {},
                ServerOnData,
                (connectionId) => {},
                NoDelay,
                Interval,
                0,
                true,
                serverSendWindowSize,
                serverReceiveWindowSize
                );
            server.NoDelay  = NoDelay;
            server.Interval = Interval;

            // create new client & received list for each test
            clientReceived = new List <byte[]>();
            client         = new KcpClient(
                () => {},
                ClientOnData,
                () => {}
                );
        }
 public void Redirect(string ip, int port)
 {
     if (kcp == null)
     {
         kcp = new KcpServer <KcpSocket>(0);
         kcp.Run(1);
     }
     if (link == null)
     {
         var address = IPAddress.Parse(ip);
         link = kcp.FindOrCreateLink(new IPEndPoint(address, port));
         link.Send(new byte[1], 0);
     }
     else
     {
         var add = IPAddress.Parse(ip);
         link.endpPoint.Address = add;
         link.endpPoint.Port    = port;
         var b = add.GetAddressBytes();
         unsafe
         {
             fixed(byte *bp = &b[0])
             link.ip = *(Int32 *)bp;
         }
         link.port = port;
         link.envelope.Clear();
         link.metaData.Clear();
     }
 }
        public void Connection(string ip, int port)
        {
            UniId = SystemInfo.deviceUniqueIdentifier;
            var address = IPAddress.Parse(ip);
            var kcp     = new KcpServer <KcpSocket>(0, 1);

            kcp.Run();
            link = kcp.FindOrCreateLink(new IPEndPoint(address, port));
            link.Send(new byte[1], 0);
        }
        public void Connection(string ip, int port)
        {
            if (kcp == null)
            {
                kcp = new KcpServer <KcpSocket>(0);
                kcp.Run(1);
            }
            var address = IPAddress.Parse(ip);

            link = kcp.FindOrCreateLink(new IPEndPoint(address, port));
            link.Send(new byte[1], 0);
        }
Exemple #6
0
        public void Connection(string ip, int port)
        {
            var address = IPAddress.Parse(ip);

            server = new KcpServer <KcpSocket>(0);
            server.Run(1);
            server.OpenHeart();
            var remote = new IPEndPoint(address, port);

            link = server.FindOrCreateLink(remote);
            server.soc.SendTo(KcpListener.Heart, remote);
            server.RejectAutoConnections = true;
        }
        public static void Init(bool isServer = false, bool isClient = false, bool isSimulated = false)
        {
            IsServer    = isServer ? true : IsServer;
            IsClient    = isClient ? true : IsClient;
            IsSimulated = isSimulated ? true : IsSimulated;

            if (isSimulated)
            {
                if (NetLogFilter.logInfo)
                {
                    Debug.Log("Transport Layer Initialized: Simulation");
                }
                return;
            }

            if (IsServer && server == null)
            {
                // server
                server = new KcpServer(
                    (connectionId) => OnServerConnected.Invoke(connectionId),
                    (connectionId, message) => OnServerDataReceived.Invoke(connectionId, message, (int)UDPChannels.Reliable),
                    (connectionId) => OnServerDisconnected.Invoke(connectionId),
                    NoDelay,
                    Interval,
                    FastResend,
                    CongestionWindow,
                    SendWindowSize,
                    ReceiveWindowSize
                    );
                if (NetLogFilter.logInfo)
                {
                    Debug.Log("Transport Layer Initialized: Server");
                }
            }

            if (IsClient && client == null)
            {
                // client
                client = new KcpClient(
                    () => OnClientConnected.Invoke(),
                    (message) => OnClientDataReceived.Invoke(message, (int)UDPChannels.Reliable),
                    () => OnClientDisconnected.Invoke()
                    );
                if (NetLogFilter.logInfo)
                {
                    Debug.Log("Transport Layer Initialized: Client");
                }
            }
        }
Exemple #8
0
        public EchoServer(Configuration config, BenchmarkStatistics benchmarkStatistics) : base(config)
        {
            this.config = config;
            this.benchmarkStatistics = benchmarkStatistics;
            communicationChannel     = Kcp2kBenchmark.GetChannel(config.Transmission);


            var interval = (uint)Utilities.CalculateTimeout(config.ServerTickRate);

            server = new KcpServer(OnConnected, OnReceiveMessage, OnDisconnected, DualMode, NoDelay, interval);

            serverThread          = new Thread(TickLoop);
            serverThread.Name     = "Kcp2k Server";
            serverThread.Priority = ThreadPriority.AboveNormal;
        }
        public void Connection(string ip, int port)
        {
            var address = IPAddress.Parse(ip);

            KcpServer.CreateLink = (o) => {
                return(new KcpSocket(o));
            };
            var kcp = new KcpServer(0, 0, 1);

            link = kcp.CreateNewLink(new IPEndPoint(address, port)) as KcpSocket;
            link.SendNull(ProCmd.ServerIp, MessageType.Pro);
            //LoginTable login = new LoginTable();
            //login.user = "******";
            //login.pass = "******";
            //Instance.SendObject<LoginTable>(DefCmd.Login, MessageType.Def, login);
        }
Exemple #10
0
        static void Main(string[] args)
        {
            LocalFile.loadConfig();
            SqlControll.Initial();
            var kcp = new KcpServer <KcpUser>(8899);

            kcp.OpenHeart();
            kcp.Run();
            while (true)
            {
                var cmd = Console.ReadLine();
                if (cmd == "Close" | cmd == "close")
                {
                    break;
                }
            }
        }
 // virtual so that we can overwrite for where-allocation nonalloc tests
 protected virtual void CreateServer()
 {
     server = new KcpServer(
         (connectionId) => {},
         ServerOnData,
         (connectionId) => {},
         DualMode,
         NoDelay,
         Interval,
         0,
         true,
         SendWindowSize,
         ReceiveWindowSize,
         Timeout
         );
     server.NoDelay  = NoDelay;
     server.Interval = Interval;
 }
Exemple #12
0
        public static void start()
        {
            KcpRttExampleServer kcpRttExampleServer = new KcpRttExampleServer();

            ChannelConfig channelConfig = new ChannelConfig();

            channelConfig.initNodelay(true, 40, 2, true);
            channelConfig.Sndwnd              = 512;
            channelConfig.Rcvwnd              = 512;
            channelConfig.Mtu                 = 512;
            channelConfig.FecDataShardCount   = 3;
            channelConfig.FecParityShardCount = 1;
            channelConfig.AckNoDelay          = true;
            channelConfig.TimeoutMillis       = 10000;
            channelConfig.UseConvChannel      = true;
            KcpServer kcpServer = new KcpServer();

            kcpServer.init(Environment.ProcessorCount, kcpRttExampleServer, channelConfig, 20003);
        }
Exemple #13
0
 void Awake()
 {
     // TODO simplify after converting Mirror Transport events to Action
     client = new KcpClient(
         () => OnClientConnected.Invoke(),
         (message) => OnClientDataReceived.Invoke(message),
         () => OnClientDisconnected.Invoke()
         );
     // TODO simplify after converting Mirror Transport events to Action
     server = new KcpServer(
         (connectionId) => OnServerConnected.Invoke(connectionId),
         (connectionId, message) => OnServerDataReceived.Invoke(connectionId, message),
         (connectionId) => OnServerDisconnected.Invoke(connectionId),
         NoDelay,
         Interval,
         FastResend,
         CongestionWindow,
         SendWindowSize,
         ReceiveWindowSize
         );
     Debug.Log("KcpTransport initialized!");
 }
Exemple #14
0
        static void Main(string[] args)
        {
            KcpServer.CreateLink = (o) => { return(new KcpUser(o)); };
            var kcp = new KcpServer(8888);

            kcp.OpenHeart();
            RServer rs = new RServer();

            rs.name = "斗地主";
            rs.key  = "ert125dsaqwqf43bvrwurx24354tq245sd32dfkh348shdjfhs234sf5345";
            IPEndPoint endPoint = new IPEndPoint(IPAddress.Parse("193.112.70.170"), 6666);

            kcp.Send(KcpPack.PackObject <RServer>(ProCmd.Server, MessageType.Pro, rs), EnvelopeType.AesDataBuffer, endPoint);
            while (true)
            {
                var cmd = Console.ReadLine();
                if (cmd == "close" | cmd == "Close")
                {
                    break;
                }
            }
        }
Exemple #15
0
 public bool Init(ChannelConfig channelConfig, IPEndPoint ep)
 {
     server = new KcpServer();
     server.init(Environment.ProcessorCount, this, channelConfig, ep.Port);
     return(true);
 }
 public KcpSocket(KcpServer server) : base(server)
 {
     datas = new Queue <KcpData>();
     Console.WriteLine("new link");
 }
 public KcpUser(KcpServer server) : base(server)
 {
     Console.WriteLine("new link");
 }