Beispiel #1
0
        static void Main(string[] args)
        {
            PopoObjectPool.Load();

            //IPEndPoint iPEndPoint = new IPEndPoint(IPAddress.Parse("127.0.0.1"), 9936);
            //service = new TcpService(iPEndPoint);
            //service.Start();

            //var count = 0;
            //Stopwatch stopwatch = new Stopwatch();
            //stopwatch.Start();

            //service.OnReceive = async(c, p) =>
            //{
            //    try
            //    {
            //        await c.SendAsync(p);
            //        Interlocked.Increment(ref count);
            //       // Console.WriteLine($"{p.RpcId}");
            //    }
            //    catch(Exception e)
            //    {
            //        Console.WriteLine(e.Message);
            //        await Task.Delay(10000000);
            //    }
            //};

            //Console.Read();
        }
Beispiel #2
0
        public static T Create <T>(IPEndPoint iPEndPoint, Type handlerTypes) where T : NetService
        {
            var type    = typeof(T);
            var service = (T)PopoObjectPool.Fetch(typeof(T), iPEndPoint, handlerTypes);

            return(service);
        }
Beispiel #3
0
        public override async Task AcceptAsync()
        {
            while (true)
            {
                var tcpClient = await tcpListener.AcceptTcpClientAsync();

                var channel = (TcpChannel)PopoObjectPool.Fetch(typeof(TcpChannel), endPoint);
                channel.ChannelType = ChannelType.Server;
                channel.TcpClient   = tcpClient;
                channel.OnError     = OnChannelError;
                Channels.TryAdd(channel.ObjectId, channel);
                CreateMessageHandlers(channel);
            }
        }
Beispiel #4
0
        public override async Task ConnectAsync()
        {
            var tcpClient = new TcpClient();
            var channel   = (TcpChannel)PopoObjectPool.Fetch(typeof(TcpChannel), endPoint);

            channel.ChannelType = ChannelType.Client;
            channel.TcpClient   = tcpClient;
            channel.EndPoint    = endPoint;
            if (await channel.StartConnecting())
            {
                channel.OnError = OnChannelError;
                Channels.TryAdd(channel.ObjectId, channel);
                CreateMessageHandlers(channel);
            }
        }
Beispiel #5
0
        public static NetService Create(Type type, IPEndPoint iPEndPoint, Type handlerTypes)
        {
            var service = (NetService)PopoObjectPool.Fetch(type, iPEndPoint, handlerTypes);

            return(service);
        }