Ir para conteúdo
  • Cadastre-se

dev botao

Comandos por Socks


Ver Solução Respondido por sinval.gedolin,
  • Este tópico foi criado há 1667 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

Postado

Caros amigos, este é um trecho de meu programa ADVPL, ele está conectando, porem envio umcomando ao monitor e não recebo nada. será que estou enviando o comando correto/

Na variável cSEND eu coloco a String que queri enviar por Socks ao endereço e porta conectado.

me ajudem com a sintaxe correta do comando sock do AcBr porfavor.

 

    For nX := 1 to 3
        nResp := oObj:ConnectnPort,nIp,10 )
        // -------------------------------
        // Se conectou abandona o FOR
        // -------------------------------
        If(nResp == 0 )
            Exit
        Else
            conout("--> Tentativa de Conexão ACBr: " + StrZero(nX,3))
            Sleep(2000)
        EndIf
    Next
 
    If( !oObj:IsConnected() )
        conout("*********  Não foi possível estabelecer conexão com o ACBr. *********")
        Return(.F.)
    Else
        conout("****************** ACBr CONECTADO! ************************")
        Sleep(2000)
        cSend := 'NFe.DistribuicaoDFeporUltNSU("52","37247772000132","0")'
        nResp := oObj:SendcSend )
        oObj:CloseConnection()
    EndIf   
 
 
  • Administradores
Postado

Boa tarde.

Por favor anexe o log do ACBrMonitorPlus para que possamos analisar melhor.

Att.

Consultora SAC ACBr

Juliana Tamizou

Gerente de Projetos ACBr / Diretora de Marketing AFRAC
Ajude o Projeto ACBr crescer - Seja Pro

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

Projeto ACBr - A maior comunidade Open Source de Automação Comercial do Brasil


Participe de nosso canal no Discord e fique ainda mais próximo da Comunidade !!

  • Administradores
Postado

Tópico movido para a área do SAC, para que o SLA de respostas seja considerado

Consultora SAC ACBr

Juliana Tamizou

Gerente de Projetos ACBr / Diretora de Marketing AFRAC
Ajude o Projeto ACBr crescer - Seja Pro

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

Projeto ACBr - A maior comunidade Open Source de Automação Comercial do Brasil


Participe de nosso canal no Discord e fique ainda mais próximo da Comunidade !!

Postado

Rafaael, eu coloco em ANSI mesmo ou em ASCII

acha que colocar "\r\n.\r\n" depois de meu comando funciona?

cSend := 'NFe.DistribuicaoDFeporUltNSU("52","37247772000132","0")'+"\r\n.\r\n"

antigamente eu finalizava com isso, mas era outro produto acebr

 Chr(13)+Chr(10)+Chr(46)+Chr(13)+Chr(10)
Postado

Amigos notem que coloquei os caracteres junto com a string, e mesmo assim, não funcionou.

    Private oObj := tSocketClient():New()
    Private _cEol := Chr(13)+Chr(10)+Chr(46)+Chr(13)+Chr(10)
 
    For nX := 1 to 3
        nResp := oObj:ConnectnPort,nIp,10 )
        // -------------------------------
        // Se conectou abandona o FOR
        // -------------------------------
        If(nResp == 0 )
            Exit
        Else
            conout("--> Tentativa de Conexão ACBr: " + StrZero(nX,3))
            Sleep(2000)
        EndIf
    Next
 
    If( !oObj:IsConnected() )
        conout("*********  Não foi possível estabelecer conexão com o ACBr. *********")
        Return(.F.)
    Else
        conout("****************** ACBr CONECTADO! ************************")
        Sleep(2000)
        cSend := 'NFe.DistribuicaoDFeporUltNSU("52","37247772000132","0")'+_cEol
        nResp := oObj:SendcSend )
        oObj:CloseConnection()
    EndIf   
Postado

estranho você checou se no monitor esta chegando os comandos, poste o log dele
Obs.: \r\n é caracteres de comando em linguagens baseadas em C e é a mesma coisa que o char(13) + Char(10)

 

Postado

Rafael, eu coloquei isso depois do comando Chr(13)+Chr(10)+Chr(46)+Chr(13)+Chr(10)

Ou seja minha String enviada, foi:

 'NFe.DistribuicaoDFeporUltNSU("52","37247772000132","0")'+Chr(13)+Chr(10)+Chr(46)+Chr(13)+Chr(10)

E não trqbalhou

  • Solution
Postado

coloquei para que o ADVPL fizesse uma pausa de 15 segundos antes de fechar a conexão SOCKs, se ver no codigo acima, foi colocado para ele fechar a conexão depois de enviar  comando.

E antes dos 15 segundos eu fiz uma verificação se houve algum retorno.

ficando assim:

 

 

    Private oObj        := tSocketClient():New()
    Private _cEol       := Chr(13)+Chr(10)+Chr(46)+Chr(13)+Chr(10)
 
    For nX := 1 to 3
        nResp := oObj:ConnectnPort,nIp,10 )
        // -------------------------------
        // Se conectou abandona o FOR
        // -------------------------------
        If(nResp == 0 )
            Exit
        Else
            conout("--> Tentativa de Conexão ACBr: " + StrZero(nX,3))
            Sleep(2000)
        EndIf
    Next
 
    If( !oObj:IsConnected() )
        conout("*********  Não foi possível estabelecer conexão com o ACBr. *********")
        Return(.F.)
    Else
        conout("****************** ACBr CONECTADO! ************************")
        Sleep(2000)
        cSend := 'NFe.DistribuicaoDFeporUltNSU("52","37247772000132","0")'+_cEol
        nResp := oObj:SendcSend )
        ifnResp != lencSend ) )
            conout"--> Erro! Dado não transmitido" )
        else
            conout"--> Dado Enviado - Retorno: " +StrZero(nResp,5) )
        endif
        Sleep(20000)
        conout("****************** Fechando o ACBr! ************************")
        oObj:CloseConnection()
    EndIf

 

  • Curtir 2
  • Este tópico foi criado há 1667 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.
Visitante
Este tópico está agora fechado para novas respostas
×
×
  • 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.

The popup will be closed in 10 segundos...
The popup will be closed in 10 segundos...