Пример #1
0
        public static byte[] SolicitarDescargarArchivo(string nombreArchivo)
        {
            string mensajeRet = "";

            //Verificamos que no exista un archivo con ese nombre
            if (archivosBajados == null)
            {
                archivosBajados = new List <string>();
            }

            lock (archivosBajados)
            {
                if (archivosBajados.Contains(nombreArchivo))
                {
                    mensajeRet = "ERROR";
                }
                else
                {
                    mensajeRet = "OK";
                    archivosBajados.Add(nombreArchivo);
                }
            }

            string mensaje = nombreArchivo + "#" + mensajeRet;

            Protocolo.Protocolo prot = new Protocolo.Protocolo("REQ", "4", 9 + Encoding.ASCII.GetBytes(mensaje).Length, Encoding.ASCII.GetBytes(mensaje));
            string protocoloString   = prot.ToString();

            byte[] bytes = Encoding.ASCII.GetBytes(protocoloString);
            return(bytes);
        }
Пример #2
0
        static void ConectarseAlServidor()
        {
            bool isRunning = true;
            //Lo correcto sería verificar si el puerto está en uso, y si lo está pedir un puerto nuevo o buscar uno.
            IPEndPoint clientEndPoint =
                new IPEndPoint(IPAddress.Parse("172.20.1.106"), 6001);
            IPEndPoint serverEndPoint =
                new IPEndPoint(IPAddress.Parse("172.20.1.106"), 6000);
            Socket socket = new Socket(AddressFamily.InterNetwork,
                                       SocketType.Stream,
                                       ProtocolType.Tcp);

            socket.Bind(clientEndPoint);
            socket.Connect(serverEndPoint);
            Console.WriteLine("Conectado al servidor");
            try
            {
                while (isRunning)
                {
                    String message           = "REQ" + Console.ReadLine();
                    byte[] data              = Encoding.UTF8.GetBytes(message);
                    Protocolo.Protocolo prot = Protocolo.Protocolo.Codificar(data);
                    socket.Send(data);
                }
            }
            catch (SocketException ex)
            {
                socket.Shutdown(SocketShutdown.Both);
                socket.Close();
                Console.WriteLine("El servidor cerró la conexión");
                Console.ReadLine();
            }
        }
Пример #3
0
        public static string ProcesarRespuesta(byte[] respuesta)
        {
            Protocolo.Protocolo protocoloRespuesta = Protocolo.Protocolo.BytesAProtocolo(respuesta);
            byte[] bytesRespuesta = protocoloRespuesta.darBytes();
            string ret            = Encoding.UTF8.GetString(bytesRespuesta).TrimEnd().Replace("\0", string.Empty);

            return(ret);
        }
Пример #4
0
        public static byte[] IniciarSesion(string nombreUsuario)
        {
            Protocolo.Protocolo prot = new Protocolo.Protocolo("REQ", "1", 9 + nombreUsuario.Length, Encoding.ASCII.GetBytes(nombreUsuario));
            String protocoloString   = prot.ToString();

            byte[] bytes = Encoding.ASCII.GetBytes(protocoloString);
            return(bytes);
        }
Пример #5
0
        public static byte[] CerrarSesion()
        {
            Protocolo.Protocolo prot = new Protocolo.Protocolo("REQ", "6", 9, new byte[0]);
            String protocoloString   = prot.ToString();

            byte[] bytes = Encoding.ASCII.GetBytes(protocoloString);
            return(bytes);
        }
Пример #6
0
        public static byte[] SincronizarServidor(string datosServidor)
        {
            Protocolo.Protocolo prot = new Protocolo.Protocolo("REQ", "5", 9 + Encoding.ASCII.GetBytes(datosServidor).Length, Encoding.ASCII.GetBytes(datosServidor));
            string protocoloString   = prot.ToString();

            byte[] bytes = Encoding.ASCII.GetBytes(protocoloString);
            return(bytes);
        }
Пример #7
0
        public static byte[] DescargarPaqueteDeArchivo(string paqueteActual)
        {
            Protocolo.Protocolo prot = new Protocolo.Protocolo("REQ", "8", 9 + Encoding.ASCII.GetBytes(paqueteActual).Length, Encoding.ASCII.GetBytes(paqueteActual));
            string protocoloString   = prot.ToString();

            byte[] bytes = Encoding.ASCII.GetBytes(protocoloString);
            return(bytes);
        }
Пример #8
0
        public static byte[] SolicitarArchivos()
        {
            Protocolo.Protocolo prot = new Protocolo.Protocolo("REQ", "2", 9, new byte[0]);
            String protocoloString   = prot.ToString();

            byte[] bytes = Encoding.ASCII.GetBytes(protocoloString);
            return(bytes);
        }
Пример #9
0
        public static byte[] CargarArchivo(string nombreArchivo)
        {
            int cantPaquetes = 0;

            try
            {
                int largo = File.ReadAllBytes(directorioCliente + "\\" + nombreArchivo).Length;
                cantPaquetes = (largo / 9990) + 1; // minimo 1
            }
            catch (FileNotFoundException e)
            {
            }
            catch (DirectoryNotFoundException e)
            {
            }
            string archivoYCantPaquetes = nombreArchivo + "#" + cantPaquetes;

            Protocolo.Protocolo prot = new Protocolo.Protocolo("REQ", "3", 9 + archivoYCantPaquetes.Length, Encoding.ASCII.GetBytes(archivoYCantPaquetes));
            String protocoloString   = prot.ToString();

            byte[] bytes = Encoding.ASCII.GetBytes(protocoloString);
            return(bytes);
        }
Пример #10
0
 public static void Leer(Protocolo protocolo)
 {
 }
Пример #11
0
 public static byte[] getDatos(byte[] data)
 {
     Protocolo.Protocolo prot = Protocolo.Protocolo.BytesAProtocolo(data);
     return(prot.darBytes());
 }
Пример #12
0
 public static int darLargo(byte[] data)
 {
     Protocolo.Protocolo prot = Protocolo.Protocolo.BytesAProtocolo(data);
     return(prot.DarLargo());
 }