Você já se deparou com a frustrante mensagem "Socket Error Code: 10054" e se perguntou o que ela realmente significa?

Esse é um erro que pode surgir ao tentar estabelecer ou manter uma conexão de rede, indicando que a comunicação foi abruptamente encerrada pelo servidor 

Possíveis Causas

  • Instabilidade na rede;
  • Bloqueios por firewall ou antivírus;
  • Queda do serviço do postgre no servidor;
  • Central de rede e compartilhamento bloqueada;

Se nenhuma das verificações apresentadas solucionar o problema, entre em contato com seu técnico de informática para que ele possa revisar e configurar a rede entre as máquinas.


Verificações

Instabilidade na Rede

Quando a mensagem ocorre no terminal mas não no servidor,  é fundamental verificar se as máquinas estão se comunicando adequadamente. Siga os passos abaixo para testar a conectividade:

Passo a passo:

1 - No Servidor:

  • Pressione as teclas Windows + R e digite CMD.
  • No prompt de comando, digite ipconfig e anote o endereço IPv4 do servidor.

2 - No Terminal:

  • Pressione as teclas Windows + R e digite CMD.
  • No prompt de comando, digite o comando ping seguido do endereço IPv4 que você anotou do servidor (ex: ping 172.16.25.xx).

Após executar o comando ping, observe o campo "Pacotes". Se a quantidade de pacotes enviados for igual à de pacotes recebidos (perdas = 0), significa que a comunicação entre o terminal e o servidor está ocorrendo corretamente. Caso contrário, a perda de pacotes indica problemas de conectividade.

Você pode realizar o mesmo teste do servidor para o terminal. Para isso, siga o processo inverso: copie o endereço IP do terminal e, no servidor, utilize o comando ping com o IP do terminal.

Bloqueio do Firewall

Antes de fazer essa verificação é necessário confirmar se pode deixar o firewall das máquinas desativado.

Passo a passo:

  1. Abra o Painel de Controle.
  2. Clique em "Firewall do Windows".
  3. Em seguida, clique em "Ativar ou Desativar o Firewall do Windows".
  4. Clique nas opções de desativar.

Adicionar Exceções em Antivírus

AVAST

  1. Abra o Avast e clique em "☰ Menu";
  2. Clique em Configurações opções ;
  3. Vá em Exceções e depois em Adicionar Exceção;
  4. Insira os caminhos das pastas da Alterdata para pleno funcionamento, um por vez:
    1. C:\Alterdat
    2. C:\Program Files (x86)\Alterdata
  5. Em seguida, feche o aplicativo.

AVG

  1. Abra o AVG e clique em  "☰ Menu";
  2. Clique em Configurações opções ;
  3. Vá em Exceções e depois em Caminho dos Arquivos;
  4. Clique em Acrescentar e insira os caminhos:
    1. C:\Alterdat
    2. C:\Program Files (x86)\Alterdata
  5. Em seguida, clique em OK e feche o aplicativo.

BITDEFENDER

  1. Abra o Bitdefender e clique em Proteção;
  2. Acesse a seção de Antivírus e clique em Abrir;
  3. Navegue até a aba de Configurações e clique em Administrar Exceções;
  4. Na aba Todas as Exceções clique em Adicionar uma exceção;
  5. Digite os caminhos das pastas Alterdata, um por vez:
    1. C:\Alterdat
    2. C:\Program Files (x86)\Alterdata
  6. Em seguida, clique em Salvar e feche o aplicativo.

KASPERSKY

  1. Abra o Kaspersky e clique na engrenagem opções ;
  2. Vá em Adicional e clique em Ameaças e Exclusões;
  3. Na parte de Exclusões clique em Gerenciar Exclusões;
  4. Clique em Adicionar, no campo de Arquivo ou Pasta insira os caminhos das pastas Alterdata, um por vez:
    1. C:\Alterdat
    2. C:\Program Files (x86)\Alterdata
  5. Em seguida clique em Adicionar e feche o aplicativo.

WINDOWS DEFENDER

  1. Procure o aplicativo no menu Iniciar como Windows Defender (ou Segurança do Windows);
  2. Na barra lateral clique em Proteção contra antivírus e ameaça e depois em Gerenciar configurações;
  3. Role a página até encontrar a parte de Exclusões e clique em Adicionar ou remover exclusões;
  4. Clique em Adicionar uma exclusão e selecione a opção de Pasta para inserir os caminhos das pastas Alterdata, um por vez:
    1. C:\Alterdat
    2. C:\Program Files (x86)\Alterdata
  5. Após confirmar as ações, feche o aplicativo

Serviço do Postgre

Verifique se o serviço do banco de dados está ativo. Se ele estiver parado, tanto o terminal quanto o servidor exibirão a mensagem de erro.

Passo a passo:

  1. No seu servidor, clique com o botão direito na barra de tarefas e abra o Gerenciador de Tarefas;
  2. Em seguida clique em Serviços e depois em Abrir Serviços;
  3. Procure pelo serviço "postgresql-9.6" - OBS: o nome pode variar de acordo com a versão, por exemplo "postgresql-9.5"
  4. Verifique se o status está "Em Execução. Caso contrário, clique em Iniciar;

Se estiver em execução e o erro persistir, apenas reinicie o serviço.

O desempenho da máquina também pode interferir na execução do banco de dados. Confira se ela não está há muito tempo ligada em:

  1. Na tela do Gerenciador de Tarefas, acesse a aba Desempenho;
  2. Clique em CPU e confira o campo Tempo de Atividade;
  3. Se o Tempo de Atividade for superior a 24 horas, é recomendável reiniciar a máquina para garantir o pleno funcionamento.

Central de Rede e Compartilhamento

As máquinas podem não se comunicar caso a rede entre elas esteja bloqueada. Você pode verificar a existência de algum bloqueio em:

  1. Acesse o Painel de Controle;
  2. Em seguida clique em Central de Rede e Compartilhamento;
  3. Clique em Alterar configurações de compartilhamento avançadas;
  4. Para todos os perfis de rede (Público, Doméstico/Trabalho, etc.), clique em Ativar nas opções de compartilhamento.


  5. Apenas o campo Compartilhamento protegido por senha deve estar desativado.

Autor do artigo: Rebarbosa.prime.shop

(Não remova esse quadro)

Descreva o passo a passo para o cliente seguindo os padrões de escrita de artigos, como:

  1. Escreva na voz ativa,
  2. Numere o passo a passo,
  3. Evite utilização de imagens,
  4. Escreva no tempo presente, na primeira pessoa e no imperativo (em passo a passos).


Essas informações não se tornam parte do conteúdo em sua nova página, elas ficam ocultas e só aparecem para usuário logado e se o artigo/dica estiver em modo de edição!

(Não remova esse quadro)
Essas informações não se tonam parte do conteúdo em sua nova página, elas ficam ocultas e só aprecem para usuário logado e se o artigo/dica estiver em modo de edição! 
<div id="text-end"></div>




<!-- Global site tag (gtag.js) - Google Analytics -->
<script async src="https://www.googletagmanager.com/gtag/js?id=UA-193974933-1"></script>
<script>
  window.dataLayer = window.dataLayer || [];
  function gtag2(){dataLayer.push(arguments);}
  gtag2('js', new Date());

  gtag2('config', 'UA-193974933-1');


  function gtagevents (action,category) {
     console.log(category + ':' + action);
     gtag2('event',action,{event_category:category,event_label: document.title});
  };

</script>

<script src="https://player.vimeo.com/api/player.js"></script>
<script>
    (function(){
        // RASTREIO DE USO DO VÍDEO
        function gtagvideo(action){
           gtagevents(action,'Video')
        }

        var iframe = document.querySelector('iframe');
        var player = new Vimeo.Player(iframe);

        var seeking = false;
        var priorTime = 0;
        var currentTime = 0;
        var reportouFinalDoConteudo = false;

        // se pausar o play é acionado também.
        player.on('play', function(data) {
            if(data.seconds == 0){ 
              gtagvideo('video-iniciado');
            }
            priorTime = data.seconds;             
        });

        player.on('ended', function() {
            gtagvideo('video-finalizado');
        });

        //seeking e timeupdate são disparados juntos, logo o tempo dos 2 é atualizado também. Preciso garantir que a variavel starttime seja atualizada ordenadamente (sempre antes ou após o seeking).
        // pra isso preciso setar uma variavel no timeupdate e ler no seeking para garantir a ordem. Se ela estiver false será alterada na próxima iteração.
        player.on('seeking', function(data) {               
            seeking = true;
        });


        player.on('pause',function(data){
            gtagvideo('video-pausado');    
        });

        player.on('timeupdate', function(data) {
            if(seeking){
                if(currentTime < priorTime){
                    gtagvideo('video-voltando');    
                }
                if(currentTime > priorTime){
                    gtagvideo('video-avancando')
                }
                seeking = false;
            }
            priorTime = currentTime;
            currentTime = data.seconds;


           var finalDoConteudo = (data.duration - data.seconds) < 5;
           if(finalDoConteudo && !reportouFinalDoConteudo){
            gtagvideo('conteudo-finalizado')
            reportouFinalDoConteudo = true;
           }
        });

        player.on('fullscreenchange', function() {
            gtagvideo('video-fullscreen');
        });
    })();
</script>

<script>
 // RASTREIO DO USO DE AUDIO
 (function(){
    function gtagaudio(action){
           gtagevents(action,'Audio')
    }            

    var audio = document.querySelector("audio");

    var seeking = false;
    var priorTime = 0;
    var currentTime = 0;

    audio.addEventListener('play',function(){
        if(audio.currentTime == 0){
          gtagaudio('audio-iniciado');
        }
        priorTime = audio.currentTime;        
    });

    audio.addEventListener('ended',function(){
        gtagaudio('audio-finalizado');
    });

    audio.addEventListener('pause',function(){
        gtagaudio('audio-pausado');
    });

    audio.addEventListener('seeking', function(data) {               
        seeking = true;
    });

    audio.addEventListener('timeupdate', function(data) {               
        if(seeking){
                if(currentTime < priorTime){
                    gtagaudio('audio-voltando');    
                }
                if(currentTime > priorTime){
                    gtagaudio('audio-avancando')
                }
                seeking = false;
            }
            priorTime = currentTime;
            currentTime = audio.currentTime;
    });    
 })();
 </script>

<script>
    (function(){
        var terminou = false;
        //RASTREIO DE LEITURA ATÉ O FINAL DA PÁGINA
        document.addEventListener('scroll',() => {
            if(document.getElementById('text-end').getBoundingClientRect().top < window.innerHeight){
                if(!terminou){
                    terminou = true;
                    gtagevents('artigo-lido','Pagina')
                }
            }else{
                terminou = false;
            }
                
        });
    })();
 </script>