Árvore de páginas

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

...

Portuguese

Pagetitle
SocketConn
SocketConn

Função: SocketConn

Cria

um

conexão

TCP

com

uma

aplicação

de

destino,

através

do

uso

de

um

Socket

do

sistema

operacional.

Sintaxe

Bloco de código
collapsefalse
SocketConn( <
cIP>
 cIP >, <
nPort>
 nPort >, <
cReq>
 cReq >, [ nTimeOut ] )
--> cBuffer

Parâmetros

/Elementos 

Nome

Tipo

Descrição

Obrigatório

Referência

cIP

Caracter

caractere

Indica a string com o endereço IP ou nome da máquina de destino desejado.

X

 

nPort

Numérico

numérico

Indica o número da porta de comunicação que será utilizada para realizar a conexão.

X

 

cReq

Caracter

caractere

String a ser enviada para a conexão de destino, caso ela seja estabelecida com sucesso.

X

 

nTimeOut

Numérico

numérico

Informa o tempo, em segundos, de espera por um retorno ( time-out ).

 

 

Retorno

Nome

 

Tipo

Retorno

Descrição

cBuffer

(caracter)

caractere

String de bytes retornados pelo serviço chamado. Cada serviço pode retornar um buffer composto de uma string de bytes / caracteres, a ordem e interpretação deste retorno deve ser conhecida pela aplicação que o utiliza.

Observações

  • Para realizar a conexão, é necessário informar o destino, que pode ser o IP ou o nome da máquina, e, em seguida, o número da porta de comunicação que será utilizada para realizar a união através dessa porta. Através do parâmetro cReq, devemos informar uma string, que
será  enviada 
  • será enviada para o servidor-alvo da conexão, caso a conexão seja estabelecida. Após ser enviada, o Protheus Server aguardará por um retorno, até que o time-out seja atingido ou a conexão seja encerrada pelo server. A função retornará uma string contendo o buffer retornado pelo servidor-alvo da conexão. Caso o parâmetro de time-out informado seja 0 (zero), a função aguardará indefinidamente uma resposta do servidor para a conexão efetuada.A conexão será realizada a partir do TOTVSAppServer, mesmo que a aplicação Advpl seja iniciada e/ou executada a partir do TOTVSSmartClient.

Uso em serviços e/ou protocolo com conexão persistente

  

Como a conexão realizada não é persistente, e o fluxo de recebimento de dados também não oferece maiores controles, o uso desta função é indicado apenas para integrações com sistemas de conexão não-persistente. O uso desta função também é recomendável para

requisições  

requisições "curtas" de dados, nada que precise trafegar mais do que 1 KB

  

Caso a função seja utilizada com um protocolo persistente, por exemplo HTTP 1.1, mesmo que a função complete o recebimento da requisição em poucos segundos, como a conexão no servidor-alvo não é fechada, a função ficará em espera de recebimento, até que seja atingido o

tmepo

tempo especificado de time-out , para então retornar ao programa Advpl a string de dados recebida. Caso o parâmetro especificado seja 0 (zero), a conexão permanece aberta até que ela seja fechada pelo server, e/ou ocorra um evento de indisponibilidade / desconexão de rede. Por isso,

indepentende

independente do protocolo, não recomendamos o uso desta função com time-out zero.

 

Exemplos

Bloco de código
languagecpp
themeEclipse
linenumberstrue
collapsefalse
/*No exemplo abaixo, usamos a função para simular uma chamada de requisição HTTP
para a página principal do servidor www.google.com , na porta 80 ( http ) */
User Function 
TstCSock
Exemplo()


  Local cIp 		:= "www.google.com"


  Local nPorta 	:= 80


  Local ntimeOut := 5


  Local cHttpGet := ""// Monta pacote de requisição HTTP básico

 cHttpGet


  cHttpGet += 'GET / HTTP/1.0'+CRLF


  cHttpGet += 'Accept: */*'+CRLF


  cHttpGet += 'Accept-Language: pt-br'+CRLF


  cHttpGet += 'User-Agent: Mozilla/4.0 (compatible)'+CRLF


  cHttpGet += CRLF// Faz a requisição
 

 
  cRet := socketconn(cIp,nPorta,cHttpGet,nTimeOut)// Mostra o retorno na tela
 

 MsgStop(cRet,"SOCKET RESPONSE")


Return

Abrangência

Protheus 10 , TOTVS Application Server 10

, ByYou Application Server