Lentidão na conexão com FTP

Projeto [x]Harbour - Compilador de código aberto compatível com o Clipper.

Moderador: Moderadores

Avatar do usuário
alaminojunior
Colaborador
Colaborador
Mensagens: 1717
Registrado em: 16 Dez 2005 21:26
Localização: Ubatuba - SP

Lentidão na conexão com FTP

Mensagem por alaminojunior »

Caros,

implementei em meus sistemas uma rotina de envio de arquivos via FTP, para utilizar nos processos de NFe, CTe e NFP (Nota Fiscal Paulista).
Porém existe uma lentidão no processo de abertura da conexão. Depois de aberta a conexão, o upload de arquivos é super rápido.

Pergunto, se isso é normal, ou existe como acelerar de alguma forma este processo de abertura.

Segue trecho da rotina que uso.

Código: Selecionar todos

oProgress:Caption:= "Conectando ao servidor FTP ... "
cUrl:= "ftp://" + cFTPUSER + ":" + cFTPPASS + "@" + cFTPSERVER
oUrl:= TUrl():New(cUrl)
oFTP:= TIPClientFtp():New(oUrl,.F.)
oFTP:nConnTimeout:= 15000
oFTP:bUsePasv:= .T.
oFTP:nDefaultPort:= cFTPPORTA
oFTP:oUrl:cUserID:= cFTPUSER
oFTP:oUrl:cServer:= cFTPSERVER
oFTP:oUrl:cPassword:= cFTPPASS
cArq = strtran(cArq,'\','/')
if oFTP:Open( cUrl )
   oProgress:Caption:= "Conectando ao servidor FTP ...... OK"
   if !oFTP:Cwd( '/www/' + cServ + '/' + cPasta)
       if !oFTP:Mkd('/www/' + cServ + '/' + cPasta)
          oProgress:Caption:= "" 
          return .f.
       endif
   endif       
   oProgress:Caption:= "Transferindo " + cdisp   
Compilador xHarbour 1.2.3 + Embarcadero C++ 7.30
MySQL c/ SQLRDD
HwGui + GTWVG
Avatar do usuário
Itamar M. Lins Jr.
Administrador
Administrador
Mensagens: 7929
Registrado em: 30 Mai 2007 11:31
Localização: Ilheus Bahia
Curtiu: 1 vez

Lentidão na conexão com FTP

Mensagem por Itamar M. Lins Jr. »

Pode ser o firewall do anti virus. O Avast já gosta de fazer isso e ou nem deixar conectar, acredito que esses pseudo anti virus faz roteamento e como são todos bem, bem mal feitos faz tudo errado.

Saudações,
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
Avatar do usuário
alaminojunior
Colaborador
Colaborador
Mensagens: 1717
Registrado em: 16 Dez 2005 21:26
Localização: Ubatuba - SP

Lentidão na conexão com FTP

Mensagem por alaminojunior »

Infelizmente não Itamar !

Desabilitei tudo aqui e fiz o teste, e a mesma coisa.

Testei o acesso ao servidor FTP de outras 3 maneiras.
Via prompt do DOS - Rápido
Via Windows Explorer - Rápido
Via Filezilla - Rápido

Através do programa via TIPClientFtp() o processo de conexão ao servidor é lento. Quando o cliente tem uma conexão bem rápida com a Internet, nem atrapalha, mas quando a conexão é lenta ... chega a irritar.
Compilador xHarbour 1.2.3 + Embarcadero C++ 7.30
MySQL c/ SQLRDD
HwGui + GTWVG
Avatar do usuário
Jairo Maia
Moderador
Moderador
Mensagens: 2785
Registrado em: 16 Ago 2010 13:46
Localização: Campinas-SP

Lentidão na conexão com FTP

Mensagem por Jairo Maia »

Olá Alamino,

Apenas um palpite:

Uso a classe TIPClientFtp() para conexão FTP e não tenho problema de lentidão para se conectar. Chega a ser imperceptível. Não pode estar ligado a alguma configuração do servidor com o qual se está tentando conectar?
Abraços, Jairo
Harbour / Clipper 5.2e - Blinker 7
(Não respondo dúvidas por MP ou E-mail. Por favor, não encaminhe via mensagem privada ou e-mail, dúvidas que podem ser compartilhadas com todos no fórum)
Avatar do usuário
alaminojunior
Colaborador
Colaborador
Mensagens: 1717
Registrado em: 16 Dez 2005 21:26
Localização: Ubatuba - SP

Lentidão na conexão com FTP

Mensagem por alaminojunior »

Jairo, pode ser.
Não testei em outro servidor ainda, que alias não tenho.
Vou ver a possibilidade de fazer isso e retorno aqui.

Por hora agradeço a todos.
Compilador xHarbour 1.2.3 + Embarcadero C++ 7.30
MySQL c/ SQLRDD
HwGui + GTWVG
Avatar do usuário
Itamar M. Lins Jr.
Administrador
Administrador
Mensagens: 7929
Registrado em: 30 Mai 2007 11:31
Localização: Ilheus Bahia
Curtiu: 1 vez

Lentidão na conexão com FTP

Mensagem por Itamar M. Lins Jr. »

Hehehehe, a única diferença Jairo, é que o Harbour dele tem um X na frente rsrsrsr.
Pode não ter nada haver, mas o certo é isolar o problema, compilar o programa com o harbour 3.2 ou 3.4 e testar.

Saudações,
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
Avatar do usuário
sygecom
Administrador
Administrador
Mensagens: 7131
Registrado em: 21 Jul 2006 10:12
Localização: Alvorada-RS
Contato:

Lentidão na conexão com FTP

Mensagem por sygecom »

Alamino, bom dia.
Uso xHarbour e não tenho lentidão.Você não postou sua rotina completa, então lhe pergunto, está fechando a conexão assim que termina sua rotina?
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
Avatar do usuário
alaminojunior
Colaborador
Colaborador
Mensagens: 1717
Registrado em: 16 Dez 2005 21:26
Localização: Ubatuba - SP

Lentidão na conexão com FTP

Mensagem por alaminojunior »

Boa tarde Leo !
Acredito que esteja fechando sim.
Segue a rotina.

Código: Selecionar todos

oProgress:Caption:= "Conectando ao servidor FTP ... "
cUrl:= "ftp://" + cFTPUSER + ":" + cFTPPASS + "@" + cFTPSERVER
oUrl:= TUrl():New(cUrl)
oFTP:= TIPClientFtp():New(oUrl,.F.)
oFTP:nConnTimeout:= 15000
//oFTP:bUsePasv:= .T.
oFTP:nDefaultPort:= cFTPPORTA
oFTP:oUrl:cUserID:= cFTPUSER
oFTP:oUrl:cServer:= cFTPSERVER
oFTP:oUrl:cPassword:= cFTPPASS
cArq = strtran(cArq,'\','/')
if oFTP:Open( cUrl )
   oProgress:Caption:= "Conectando ao servidor FTP ...... OK"
   if !oFTP:Cwd( '/www/' + cServ + '/' + cPasta)
       if !oFTP:Mkd('/www/' + cServ + '/' + cPasta)
          oProgress:Caption:= "" 
          return .f.
       endif
   endif       
	oProgress:Caption:= "Transferindo " + cdisp                                             	
   oFTP:exGauge:= { | done | MilliSec(15),oProgress:Caption:= "Enviando arquivo ... "+ cArq + STR((done/nTam)*100,4)+" %",oProgress:Refresh() }
   if !oFtp:UploadFile( cArq, '/www/' + cServ + '/' + cPasta + '/' + right(cArq,iif(cServ='NFP',12,52)) )
      oProgress:Caption:= ""
      return .f.
   endif
   oFTP:CWD( ".." )
	Millisec(50) 
   oFTP:Close()
   oProgress:Caption:= "Transferindo para Daxxi ..."
   Envia_Sql_Daxxi(cPasta,cRef,cServ,right(cArq,iif(cServ='NFP',12,52)),1)
   oProgress:Caption:= ""
   return .t.
Já testei e a demora é no método Open() do objeto oFtp. Demora cerca de 20 segundos para abrir a conexão.
Depois que abre, o processo de envio dos arquivos é muito rápido, até porque os arquivos costumam ser pequenos.
Compilador xHarbour 1.2.3 + Embarcadero C++ 7.30
MySQL c/ SQLRDD
HwGui + GTWVG
Avatar do usuário
sygecom
Administrador
Administrador
Mensagens: 7131
Registrado em: 21 Jul 2006 10:12
Localização: Alvorada-RS
Contato:

Lentidão na conexão com FTP

Mensagem por sygecom »

Chefe, antes de cada RETURN tem que ter um oFTP:Close(), veja que tem dois RETURN que está voltando sem fechar a conexão, talvez nas próximas vez ele demore a conectar por que já existe uma conexão aberta que ficou pendurada,revise ai.
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
Responder