예제 #1
0
 static void AddToPipe(Type[] types, DataPipe pipe)
 {
     foreach (Type t in types)
     {
         DataFilter dataFilter = (DataFilter)t.GetConstructor(
             new Type[] {}
             ).Invoke(
             new object[] {}
             );
         dataFilter.Pipe = pipe;
         pipe.Add(dataFilter);
     }
 }
예제 #2
0
        internal static DataPipe CreateClientUdp(CAClient client)
        {
            DataPipe dataPipe = PopulatePipe(
                new Type[] {
                typeof(UdpReceiver),
                typeof(PacketSplitter),
                typeof(ClientHandleMessage)
            }
                );

            (
                (ClientHandleMessage)dataPipe.LastFilter
            ).Client = client;
            return(dataPipe);
        }
예제 #3
0
        internal static DataPipe CreateServerTcp(CAServer server, Socket client)
        {
            DataPipe res = PopulatePipe(
                new Type[] {
                typeof(ServerTcpReceiver),
                typeof(PacketSplitter),
                typeof(ServerHandleMessage)
            }
                );

            // ((TcpReceiver)res[0]).Start(iPEndPoint) ;
            (
                (ServerHandleMessage)res.LastFilter
            ).Server = server;
            (
                (ServerTcpReceiver)res.FirstFilter
            ).Init(client);
            return(res);
        }
예제 #4
0
        internal static DataPipe CreateClientTcp(CAClient client, System.Net.IPEndPoint iPEndPoint)
        {
            DataPipe res = PopulatePipe(
                new Type[] {
                typeof(ClientTcpReceiver),
                typeof(PacketSplitter),
                typeof(ClientHandleMessage)
            }
                );

            (
                (ClientTcpReceiver)res[0]
            ).Init(
                client,
                iPEndPoint
                );
            (
                (ClientHandleMessage)res.LastFilter
            ).Client = client;
            return(res);
        }
예제 #5
0
        internal static DataPipe CreateServerUdp(CAServer server, IPAddress address, int udpPort)
        {
            DataPipe dataPipe = new DataPipe();

            dataPipe.Add(
                new UdpReceiver(
                    address,
                    udpPort
                    )
                );
            dataPipe[0].Pipe = dataPipe;
            AddToPipe(
                new Type[] {
                typeof(PacketSplitter),
                typeof(ServerHandleMessage)
            },
                dataPipe
                );
            (
                (ServerHandleMessage)dataPipe.LastFilter
            ).Server = server;
            return(dataPipe);
        }