Página 1 de 1
Lentidão na conexão com FTP
Enviado: 09 Jan 2015 11:45
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
Lentidão na conexão com FTP
Enviado: 09 Jan 2015 11:53
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.
Lentidão na conexão com FTP
Enviado: 09 Jan 2015 14:57
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.
Lentidão na conexão com FTP
Enviado: 09 Jan 2015 15:20
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?
Lentidão na conexão com FTP
Enviado: 09 Jan 2015 16:34
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.
Lentidão na conexão com FTP
Enviado: 09 Jan 2015 17:44
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.
Lentidão na conexão com FTP
Enviado: 11 Jan 2015 12:30
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?
Lentidão na conexão com FTP
Enviado: 11 Jan 2015 16:16
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.
Lentidão na conexão com FTP
Enviado: 11 Jan 2015 16:33
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.