Ejemplo n.º 1
0
        /// <summary>
        /// 数据包输入
        /// </summary>
        /// <param name="data">输入数据</param>
        /// <param name="socketAsync">该数据包的通讯SOCKET</param>
        static async void BinaryInputHandler(ISockAsyncEvent socketAsync)
        {
            var fiberRw = await socketAsync.GetFiberRw <string>();

            fiberRw.UserToken = "my is ttk";

            for (; ;)
            {
                //try
                //{
                //    //读取 发送 测试
                //    var data = await fiberRw.ReadToBlockArrayEnd();
                //    fiberRw.Write(data);
                //    await fiberRw.FlushAsync();


                //}
                //catch (SocketException)
                //{
                //    break;
                //}
                //catch (Exception er)
                //{
                //    Console.WriteLine(er.ToString());
                //    break;
                //}

                try
                {
                    //提供2种数据 读取写入方式
                    using (ReadBytes readBytes = new ReadBytes(fiberRw))
                    {
                        await readBytes.Init();

                        DataOn(readBytes, fiberRw);
                    }


                    await DataOnByLine(fiberRw);
                }
                catch (System.Net.Sockets.SocketException)
                {
                    break;
                }
                catch (Exception er)
                {
                    Console.WriteLine(er.ToString());
                    break;
                }
            }

            socketAsync.Disconnect();
        }
Ejemplo n.º 2
0
        async void BinaryInputHandler(ISockAsyncEvent socketAsync)
        {
            var fiberRw = await socketAsync.GetFiberRw <HttpToken>();

            fiberRw.UserToken = new HttpToken();

            using (var data_r = fiberRw.GetMemory(4096))
                using (var data_w = fiberRw.GetMemory(4096))
                {
                    for (; ;)
                    {
                        await HttpHandler.Receive(fiberRw, data_r.Memory, data_w.Memory);
                    }
                }
        }
Ejemplo n.º 3
0
        async void BinaryInputHandler(ISockAsyncEvent socketAsync)
        {
            var fiberRw = await socketAsync.GetFiberRw <HttpToken>();

            fiberRw.UserToken = new HttpToken
            {
                Db = new RawDb(new ConcurrentRandom(), Npgsql.NpgsqlFactory.Instance)
            };

            using var data_r = fiberRw.GetMemory(1024);
            using var write  = new WriteBytes(fiberRw);
            for (; ;)
            {
                await HttpHandler.Receive(fiberRw, data_r.Memory, write);
            }
        }
Ejemplo n.º 4
0
        async void BinaryInputHandler(ISockAsyncEvent socketAsync)
        {
            var fiberRw = await socketAsync.GetFiberRw <HttpToken>();

            fiberRw.UserToken = new HttpToken
            {
                Db = new RawDb(new ConcurrentRandom(), Npgsql.NpgsqlFactory.Instance)
            };



            using (var data_r = fiberRw.GetMemory(4096))
                using (var data_w = fiberRw.GetMemory(16384))
                {
                    for (; ;)
                    {
                        await HttpHandler.Receive(fiberRw, data_r.Memory, data_w.Memory);
                    }
                }
        }
Ejemplo n.º 5
0
        private static async void Client_BinaryInput(ISocketClient client, ISockAsyncEvent socketAsync)
        {
            var fiberRw = await socketAsync.GetFiberRw();

            client.SetConnected();

            while (true)
            {
                try
                {
                    await DataOnByLine(fiberRw);
                }
                catch
                {
                    break;
                }
            }


            client.ShutdownBoth(true);
        }
Ejemplo n.º 6
0
 private static void Client_Disconnect(ISocketClient client, ISockAsyncEvent socketAsync, string msg)
 {
     Console.WriteLine(msg);
 }
Ejemplo n.º 7
0
 /// <summary>
 /// 用户断开代理(你可以根据socketAsync 读取到断开的
 /// </summary>
 /// <param name="message">断开消息</param>
 /// <param name="socketAsync">断开的SOCKET</param>
 /// <param name="erorr">错误的ID</param>
 static void DisconnectHandler(string message, ISockAsyncEvent socketAsync, int erorr)
 {
     Console.WriteLine(message);
     socketAsync.UserToken = null;
     socketAsync.AcceptSocket?.Dispose();
 }
Ejemplo n.º 8
0
        /// <summary>
        /// 用户连接的代理
        /// </summary>
        /// <param name="socketAsync">连接的SOCKET</param>
        /// <returns>如果返回FALSE 则断开连接,这里注意下 可以用来封IP</returns>
        static bool ConnectionFilter(ISockAsyncEvent socketAsync)
        {
            Console.WriteLine("UserConn {0}", socketAsync.AcceptSocket.RemoteEndPoint.ToString());

            return(true);
        }
Ejemplo n.º 9
0
 void DisconnectHandler(string message, ISockAsyncEvent socketAsync, int erorr)
 {
     socketAsync.UserToken = null;
     socketAsync.AcceptSocket.Dispose();
 }
Ejemplo n.º 10
0
 bool ConnectionFilter(ISockAsyncEvent socketAsync) => true;