Exemplo n.º 1
0
        public void Start(object sender, DoWorkEventArgs evArgs)
        {
            bgWorker = (BackgroundWorker)evArgs.Argument;

            IPEndPoint localEndPoint = new IPEndPoint(IPAddress.Parse(this.ClientIp), this.ClientPort);

            Socket listener = new Socket(SocketType.Stream, ProtocolType.Tcp);
            try
            {
                Server = new NetContainer();
                Server.ClSocket = new Socket(SocketType.Stream, ProtocolType.Tcp);
                Server.ClSocket.Connect(this.ServerIp, this.ServerPort);
                Server.Encoder = new XRC4Cipher(Config.RC4Key);
                Server.Decoder = new XRC4Cipher(Config.RC4Key);
                Server.Buffer = new byte[Config.MaxBuffer];
                Server.Data = new PacketStream();

                Server.ClSocket.BeginReceive(Server.Buffer, 0, Config.MaxBuffer, 0, new AsyncCallback(ServerReadCallback), Server);

                listener.Bind(localEndPoint);
                listener.Listen(1);
                listener.BeginAccept(new AsyncCallback(AcceptCallback), listener);

                Form1.Log("Initialized");
            }
            catch (Exception e)
            {
                Form1.Log(e.Message);
                allDone.Set();
            }

            allDone.WaitOne();
        }
Exemplo n.º 2
0
        // ===========================================
        //                CLIENT
        // ===========================================
        private void AcceptCallback(IAsyncResult ar)
        {
            Socket listener = (Socket)ar.AsyncState;
            Socket handler = listener.EndAccept(ar);

            Client = new NetContainer();
            Client.ClSocket = handler;
            Client.Encoder = new XRC4Cipher(Config.RC4Key);
            Client.Decoder = new XRC4Cipher(Config.RC4Key);
            Client.Buffer = new byte[Config.MaxBuffer];
            Client.Data = new PacketStream();

            bgWorker.ReportProgress(0, "Client Connect");

            handler.BeginReceive(
                Client.Buffer,
                0,
                Config.MaxBuffer,
                0,
                new AsyncCallback(ReadCallback),
                Client
            );
        }