public bool OnReceiveData(Connection connection)
        {
            Data dato = DataProccessor.GetInstance().LoadObject(connection.StreamReader);

            return(CommandHandler.GetInstance().Handle(connection, dato));
            // return true;
        }
Beispiel #2
0
        private void ReceiveData()
        {
            while (notEnd)
            {
                try
                {
                    Data dato = DataProccessor.GetInstance().LoadObject(br);
                    CommandHandler.GetInstance().Handle(this, dato);
                }
                catch (Exception e)
                {
                    Console.WriteLine(e.StackTrace);
                    Console.WriteLine(e.Message);
                    notEnd = false;
                    CloseConn();
                }
            }

            Console.WriteLine("termino");
        }
        private void UploadFile()
        {
            Data reqUploadResponse = new Data();

            try
            {
                reqUploadResponse = DataProccessor.GetInstance().LoadObject(uploadStreamReader);
            }
            catch (Exception)
            {
                Cancel = true;
            }

            if (!Cancel && reqUploadResponse.Payload.Message.Equals(MessageConstants.MESSAGE_SERVER_READY))
            {
                FileInfo   fileInfo   = new FileInfo(FileSelected.FullName);
                FileStream fileStream = fileInfo.OpenRead();

                const int BUFF_SIZE = 1024;
                byte[]    buffer    = new byte[BUFF_SIZE];

                long bytesCount = 0;

                try
                {
                    while (!done && !Cancel)
                    {
                        int countRead = fileStream.Read(buffer, 0, BUFF_SIZE);
                        bytesCount += countRead;
                        if (countRead > 0)
                        {
                            if (countRead < BUFF_SIZE)
                            {
                                percentageUploaded = 100;
                                done = true;
                            }
                            uploadNetStream.Write(buffer, 0, countRead);
                            uploadNetStream.Flush();
                        }
                        else
                        {
                            //no leyo nada de la entrada (cantidad de bytes justa, en la siguiente lectura)
                            done = true;
                        }
                        if (!Cancel)
                        {
                            if (bytesCount == FileSelected.Size && FileSelected.Size == 0)
                            {
                                percentageUploaded = 100;
                                done = true;
                            }
                            else
                            {
                                percentageUploaded = (int)(bytesCount * 100 / FileSelected.Size);
                            }
                        }
                        NotifyProgress(done ? "Subida completa !" : "Subiendo ...");
                    }
                }
                catch (Exception)
                {
                    FatalError();
                }
                fileStream.Close();
            }
            else
            {
                FatalError("El servidor no esta disponible para descargas.");
            }
        }