示例#1
0
        public void Setup(IPEndPoint info)
        {
            this._listener    = new TcpPacketsReceiver(info, 2);
            this._fileRequest = new DirectoryRequestHandler();
            this._fileRequest.ReceivedFile += OnReceivedFile;

            this._folderRequest = new Handler.DirectoryRequestHandler();

            this._dispatcher = new PacketDispatcher(this._listener,
                                                    new List <IPacketHandler>
            {
                this._folderRequest,
                this._fileRequest,
            });
            this._listener.Listen();
        }
        private void Set_couple(
            Int32 senderPort,
            Int32 receiverPort,
            Action <Object, PacketContext> func)
        {
            var senderInfo   = new IPEndPoint(SocketHelper.GetIPAddress(), senderPort);
            var receiverInfo = new IPEndPoint(SocketHelper.GetIPAddress(), receiverPort);

            this.Receiver = new TcpPacketsReceiver(receiverInfo, 2);
            this.Sender   = new TcpSender(senderInfo, receiverInfo);

            this.Receiver.Listen();
            this.Sender.Connect();

            this.Receiver.ReceivedData += ((o, e) => func(o, e));
        }
        public void Send_a_file()
        {
            var target      = @"C:\Users\Freddy\Desktop\Sandbox\bestPractices.txt";
            var file        = File.ReadAllBytes(target);
            var destination = @"C:\Users\Freddy\Desktop\Sandbox\Destination\bestPractices.txt";

            var senderInfo   = new IPEndPoint(SocketHelper.GetIPAddress(), 8781);
            var receiverInfo = new IPEndPoint(SocketHelper.GetIPAddress(), 8782);

            this.Receiver = new TcpPacketsReceiver(receiverInfo, 2);
            this.Sender   = new TcpSender(senderInfo, receiverInfo);

            var packetDispatcher = new PacketDispatcher(this.Receiver,
                                                        new List <Handler.IPacketHandler>
            {
                new DirectoryRequestHandler()
            });

            packetDispatcher.Start();

            this.Sender.Connect();

            var namePacktes = PacketHelper.Frame(HeaderContainer.FileName, Encoding.ASCII.GetBytes(destination));

            this.Sender.Send(namePacktes);


            var filePacktes = PacketHelper.Frame(HeaderContainer.FileContent, file);

            this.Sender.Send(filePacktes);


            var packets = PacketHelper.Frame(HeaderContainer.EndFileContent, new Byte[] { 0x22 });

            this.Sender.Send(packets);


            Assert.AreEqual(file, File.ReadAllBytes(destination));

            this.Receiver.Close();
            this.Sender.Close();
        }