diff --git a/headers/client.h b/headers/client.h
index 33bfd99517145bd3e2756aa4354a1b96a18b80e0..89e8131cacdcdc963cec32ff756c9fb4ef2012cd 100644
--- a/headers/client.h
+++ b/headers/client.h
@@ -102,7 +102,7 @@ frame *client::send_frame_socket(frame *f) {
   }
 
   cout << "\tACK recebido:\n";
-  response->imprime(HEX);
+  response->imprime(DEC);
   return response;
 }
 
@@ -161,7 +161,7 @@ int client::send_frames(vector<frame *> frames) {
       janela.push(frameCounter);
 
       cout << "\tEnviando frame\n";
-      frames[iniJanela]->imprime(HEX);
+      frames[iniJanela]->imprime(DEC);
 
       if (socket->send_frame(frames[iniJanela + frameCounter]) == -1) {
         cout << "Falha ao enviar o frame\n";
@@ -319,10 +319,10 @@ void client::send_text(string message) {
 vector<frame *> client::create_frames_midia(vector<char> vectorName) {
   vector<frame *> framesToSend;
   vector<frame *> framesAux;
-
   // Cria um vetor com o tamanho do arquivo
   vector<char> vectorTam;
   string fileName = string(vectorName.begin(), vectorName.end());
+  cout << "Nome do arquivo- create frames midia: " << fileName << endl;
   string fileSize = calc_file_size(fileName);
   if (fileSize.empty()) { return vector<frame *>(); }
   vectorTam.insert(vectorTam.begin(), fileSize.begin(), fileSize.end());
diff --git a/headers/conexao.h b/headers/conexao.h
index 2fcab792cefc8d421796b5278492c9df5abbe9a5..224149d4dfbe8eaf6c472c5a60fded959ade5f63 100644
--- a/headers/conexao.h
+++ b/headers/conexao.h
@@ -23,13 +23,13 @@
 #include "frame.h"
 using namespace std;
 
-#define NUM_RETRIES 10
+#define NUM_RETRIES 50
 #define TAM_JANELA 2
 
 class conexao {
 private:
   // ------ Dados ------ //
-  int timeoutMillis = 500; // Tempo que fica tentando ler
+  
   int sequence = -1;       // sequencia do Ășltimo frame recebido
   int local, target;       // local and target ip address
 
@@ -43,20 +43,20 @@ private:
   int device;
   struct sockaddr_ll endereco; // endereco do socket
 
-  vector<int> timeoutValues = {1, 2, 4, 8, 16, 32, 64, 128, 256, 512};
-
   // ----- Funçoes ------ //
   int add_escapes(char *f, char *out);
   int remove_escapes(char *f, char *out);
   int ConexaoRawSocket(char *device);
-  long long timestamp();
   void close_connection(); // fecha a conexao
 
 public:
+  int timeoutMillis = 500; // Tempo que fica tentando ler
+
   // ------ Construtor ------ //
   conexao(char *deviceIP);
   frame *receive_frame();   // recebe um pacote
   int send_frame(frame *f); // envia um pacote
+  long long timestamp();
 
   int get_socket() { return device; };
 };
diff --git a/headers/server.h b/headers/server.h
index 09359aa1078628e02076e3b2b5fd0746c4422a14..aafc7fe896276ecb577609c72975e792b7745e1e 100644
--- a/headers/server.h
+++ b/headers/server.h
@@ -146,7 +146,7 @@ int server::send_nack(frame *fReceive) {
 bool server::verify_seq(int seq, int lastSeq) {
   if ( seq == 0 )
   {
-    if ( lastSeq != 15 ) { return false; }
+    if ( lastSeq != TAM_JANELA - 1 ) { return false; }
     return true;
   }
 
@@ -296,16 +296,23 @@ string server::create_file_destination(string fileName)
 }
 
 ofstream server::create_file(string fileName) {
+ cout << "Criando arquivo\n";
+ cout << "Nome do arquivo: " << fileName << "\n";
+//  long long start = socket->timestamp();
+//  struct timeval timeout = {.tv_sec = 0, .tv_usec = socket->timeoutMillis * 1000};
   string fileDestination = create_file_destination(fileName);
 
-  cout << BOLDWHITE << "Criando arquivo " << BOLDYELLOW << fileDestination
-       << BOLDWHITE << ". Digite novo nome ou enter para continuar: " << RESET;
+//  cout << BOLDWHITE << "Criando arquivo " << BOLDYELLOW << fileDestination
+//       << BOLDWHITE << ". Digite novo nome ou enter para continuar: " << RESET;
 
-  string newDestination = "";
-  getline(cin, newDestination);
-  if (!newDestination.empty() && newDestination != "\n") {
-    fileDestination = newDestination;
-  }
+//  string newDestination = "";
+//  do {
+//    getline(cin, newDestination);
+//  } while (socket->timestamp() - start <= socket->timeoutMillis);
+
+//  if (!newDestination.empty() && newDestination != "\n") {
+//    fileDestination = newDestination;
+//  }
   cout << YELLOW << "\t--Criando arquivo: " << fileDestination << "--\n"
        << RESET;
 
@@ -316,7 +323,9 @@ ofstream server::create_file(string fileName) {
 }
 
 int server::receive_midia(frame *f) {
-  
+  cout << "Recebendo midia:\n"
+        << "Seq: " << int(f->get_seq()) << "\n"
+        << "Dado: " << f->get_dado() << "\n";
   ofstream file;
 
   // Escreve o dado no arquivo
@@ -332,6 +341,7 @@ int server::receive_midia(frame *f) {
     cout << "Recebendo tamanho do arquivo\n";
     if (!create_received_dir()) { return 0; }
     if (!receive_file_size(f))  { return 0; }
+    return 1;
   }
 
   // Segundo frame de midia
@@ -395,6 +405,7 @@ queue<frame *> server::receive_frames_window(int lastSeq)
 {
   queue<frame *> frames_queue;
   frame *f;
+  int midia_cnt = 0;
   int retries = 0;
 
   do {
@@ -420,6 +431,7 @@ queue<frame *> server::receive_frames_window(int lastSeq)
       frames_queue.push(f);
       lastSeq = 0;
       retries = 0;
+      midia_cnt++;
       continue; 
     }
 
@@ -428,12 +440,13 @@ queue<frame *> server::receive_frames_window(int lastSeq)
     if ( tipo == MIDIA && tipoReceivingFrames == MIDIA )
     {
       // Ignora se for um frame do tipo midia que nao e o segundo da sequencia
-      if ( lastSeq != 0 || (TAM_JANELA > 1 && f->get_seq() != 1)) { continue; }
+      if ( !(midia_cnt != 1 && TAM_JANELA == 1) ) { continue; }
 
       // Se for o segundo frame do tipo midia, muda o tipo esperado
       tipoReceivingFrames = DADOS;
       frames_queue.push(f);
-      lastSeq = 1;
+      midia_cnt++;
+      lastSeq = f->get_seq();
       retries = 0;
       continue;
     }
@@ -469,6 +482,7 @@ void server::start_receveing_message() {
   int continueTransmission = 1;
   int lastSeq = -1;
   int tipo_data = -1;
+  int midia_cnt = 0;
   vector<char> data;
   queue<frame *> client_answer;
 
@@ -497,7 +511,7 @@ void server::start_receveing_message() {
       }
       
       cout << "Frame recebido: \n";
-      f->imprime(HEX);
+      f->imprime(DEC);
       cout << "\n";
 
       int tipo = f->get_tipo();
@@ -518,9 +532,10 @@ void server::start_receveing_message() {
           break;
 
         case MIDIA:
+          if ( TAM_JANELA == 1 && midia_cnt == 1) { f->set_seq(1); } 
           if ( !receive_midia(f) ) { return; }
-          lastSeq = f->get_seq();
           tipo_data = next_tipo_midia(f);
+          midia_cnt++;
           break;
 
         case DADOS:
diff --git a/received/texto.txt b/received/1
similarity index 100%
rename from received/texto.txt
rename to received/1
diff --git a/received/1118 b/received/1118
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391