Ir para conteúdo
  • Cadastre-se

dev botao

Execução De Ping Na Rede


  • Este tópico foi criado há 3740 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

Boa Dia a Todos, bom estou passando por uns apuros no Delphi XE5 com relação a PING na rede, ja tentei de toda as formas com o TIdIcmpClient e sempre faz uma bagunça com o delphi da erros de no delphi todo de estou de memoria e afeta até os componentes do delphi dando erro de propriedades, eu tinha até entrado em contato com a ambracadero achando q era problema no delphi mas junto com eles descobrimos q o problemas esta jutamente quando dava o ping na função a baixo:

function ExecutaPing(HostName: String): boolean;
var
  PckEntregue : Array[1..3] of Integer;
  ICMP : TIdIcmpClient;
  ABuffer: String;
begin
  try
   ICMP := TIdIcmpClient.Create(nil);
    try
     ICMP.PacketSize := 32;
     ICMP.Host := HostName;
     ICMP.ReceiveTimeout := 500;
     ICMP.Ping;
     if ICMP.ReplyStatus.BytesReceived > 0 then
      Result := True
     else
      Result := False;
    except
     Result  := False;
    end;
  finally
    ICMP.Destroy;
  end;
end;

fiz uma busca aqui no acbr para ver se algum componente poderia fazer essa função de verificar a rede conectada dando os ping se existir algum componente ou função que possa me ajudar usando o DelphiXE5, pois essa função assima funciona no Delphi 2010

 

eu agradeço Muito,

 

Obrigado

Link para o comentário
Compartilhar em outros sites

  • Consultores

Tente usando um ping via WMI

 

http://theroadtodelphi.wordpress.com/2011/02/02/making-a-ping-with-delphi-and-the-wmi/

 

EDIT: Ou use a API do Windows IcmpSendEcho

[]'s

Consultor SAC ACBr

Elton
Profissionalize o ACBr na sua empresa, conheça o ACBr Pro.

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.

Um engenheiro de Controle de Qualidade(QA) entra num bar. Pede uma cerveja. Pede zero cervejas.
Pede 99999999 cervejas. Pede -1 cervejas. Pede um jacaré. Pede asdfdhklçkh.
Link para o comentário
Compartilhar em outros sites

  • Consultores

Quais são os erros exatamente?

[]'s

Consultor SAC ACBr

Elton
Profissionalize o ACBr na sua empresa, conheça o ACBr Pro.

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.

Um engenheiro de Controle de Qualidade(QA) entra num bar. Pede uma cerveja. Pede zero cervejas.
Pede 99999999 cervejas. Pede -1 cervejas. Pede um jacaré. Pede asdfdhklçkh.
Link para o comentário
Compartilhar em outros sites

  • Moderadores

Mas estes são erros de componentes, provavelmente você está abrindo um aplicativo feito em uma versão antiga do delphi ou usando versões antigas dos componentes que usou, não abriu todos os forms e recompilou, isso nada tem a ver com o Delphi.

 

Se está abrindo um aplicativo feito em versão anterior, você precisa reinstalar os componentes corretamente para a versão do Delphi, abrir os fontes do projeto, converter tudo ai só depois vai conseguir rodar.

  • Curtir 1

Equipe ACBr

Régys Borges da Silveira

http://www.regys.com.br

certificacao delphicertificacao delphi
Link para o comentário
Compartilhar em outros sites

Regys foi feito relamente no delphi 2010 mas os componentes usados sao o Devexpress e Acbr o resto é do delphi memso e todos os forms foram abertos corretamente e migrado e todos os componentes são os mais recentes, se eu comentar a função do ping acima não da erro se abilitar ai vira uma loucura

Editado por tchuck
Link para o comentário
Compartilhar em outros sites

  • Moderadores

tchuck, veja que as mensagens são de erros de violação de acesso a propriedades dos componentes, teoricamente o ping não tem nada a ver com isso.

 

Veja uma coisa, somente abrir o form não converte ele, você precisa alterar algo e salvar, ai sim o delphi atualiza o form, eu quando tenho que fazer algo desse tipo, movo um componente qualquer, geralmente os não visuais, porque assim muda-se a coordenada dele na tela e o delphi salva o forma novamente, ai sim os erros são mostrados e as propriedades acertadas.

Equipe ACBr

Régys Borges da Silveira

http://www.regys.com.br

certificacao delphicertificacao delphi
Link para o comentário
Compartilhar em outros sites

Bom regys vou vrificar isso mas o sistema ja foi todo modificado entao todos forms e unit tbm foram salvas e até os novos forms estao apresentando o problema quando ativa o ping, ainda esta meio estrando com a fução de ping justamente nela da erro quando não comentada

Editado por tchuck
Link para o comentário
Compartilhar em outros sites

  • Consultores

   Me parece mais um erro do compilador. Talvez alguma incompatibilidade no código com componentes antigos como o Régys disse. Talvez esteja dando erro no ping por ele fazer algum tipo de modificação nas threads principais. É possível também que dê erro por alguma incompatibilidade por causa dos skins.

São muitas possibilidades, os access violations são apenas sintomas de algum problema.

   Algumas perguntas:

  • Você está usando skins nessa aplicação?
  • Está usando em algum lugar o Firemonkey?
  • Está compilando para 64bits?
  • Está usando algum outro gerenciador de memória que não é nativo?
  • Está usando algum componente ou biblioteca para fazer log de erros como o EurekaLog ou MadException?
  • Outra coisa a ser verificada é onde você faz a chamada para o ping? Está usando uma thread separada? Faz a chamada num form principal?

   Para cada resposta positiva no caso acima, desabilite/comente/remova para testar a influência sobre o código.

 

   Duas coisas que eu não entendi foram:

  1. Como é que o ping, que nem faz menção do EditInscEstadual.EditLabel.Caption, consegue fazer dar erro nesse componente. Em alguma parte depois do ping ele chama essa propriedade?
  2. Se o pessoal da Embarcadero identificou que o erro era neste método de fazer ping, que é sugerido pelo componente Indy, qual outro método de fazer ping eles sugerem?

[]'s

Consultor SAC ACBr

Elton
Profissionalize o ACBr na sua empresa, conheça o ACBr Pro.

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.

Um engenheiro de Controle de Qualidade(QA) entra num bar. Pede uma cerveja. Pede zero cervejas.
Pede 99999999 cervejas. Pede -1 cervejas. Pede um jacaré. Pede asdfdhklçkh.
Link para o comentário
Compartilhar em outros sites

O meu sistema usa transferência de arquivos para funcionar as comunicações entre o servidor e o pdv, eu dou o ping para verificar se o servidor esta ativos para transferir os arquivos, é para isso q serve a função ping..

 

Não Uso Skin

Não Uso Firemonkey

Usamos o desenvolvimento em 32 bits

 

e o erro do EditInscEstadual.EditLabel.Caption isso é aleatório as vezes da em outros componentes como panel, editis ou até mesmo no form mas se eu chegar na linha ICMP.Ping; e comentar o sistema funciona 100% sem nem uma erro mas se eu liberar essa linha ai o bixo pega trava a aplicação, e da esses erros apresentados...

 

lembrado a aplicação so uso Devexpress e ACBr de componentes de terceiros o resta é nativo

Link para o comentário
Compartilhar em outros sites

  • Consultores

Então tchuck, eu posso te garantir que o código do ping via WMI está correto. Ele sozinho não é culpado pelos problemas. Então tem alguma outra coisa que junta com ele dá o problema.

 

Algumas sugestões que me vieram a mente foram:

  1. habilitar o fulldebug do FastMM que já vem no Delphi, e verificar se ele descobre os motivos do problema;
  2. Você poderia tentar trocar o gerenciador de memória (Talvez o SynscalleMM, o ScalleMM, ou o SAPMM)
  3. habilitar o AQtime para verificar alocação de memória (que se não me engano também vem no Delphi XE5)
  4. Ver com a Embarcadero alguma sugestão para identificar o problema e solucionar.
  5. Remover os componentes da Devexpress para verificar se eles tem alguma influência

[]'s

Consultor SAC ACBr

Elton
Profissionalize o ACBr na sua empresa, conheça o ACBr Pro.

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.

Um engenheiro de Controle de Qualidade(QA) entra num bar. Pede uma cerveja. Pede zero cervejas.
Pede 99999999 cervejas. Pede -1 cervejas. Pede um jacaré. Pede asdfdhklçkh.
Link para o comentário
Compartilhar em outros sites

  • Este tópico foi criado há 3740 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora
×
×
  • Criar Novo...

Informação Importante

Colocamos cookies em seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies, caso contrário, assumiremos que você está bem para continuar.