You are on page 1of 2

SocketConn

Colapse ALL
Expand ALL

Funo: SocketConn
Cria um conexo TCP com uma aplicao de destino, atravs do uso de um Socket do sistema operacional.
Sintaxe
SocketConn ( < cIP>, < nPort>, < cReq>, [ nTimeOut] ) --> cBuffer
Parmetros/Elementos

Nome

Tipo

Descrio

Obrigatrio

cIP

Caracter

Indica a string com o


endereo IP ou nome da
mquina de destino
desejado.

nPort

Numrico

Indica o nmero da porta


de comunicao que ser
utilizada para realizar a
conexo.

cReq

Caracter

String a ser enviada para


a conexo de destino,
caso ela seja
estabelecida com
sucesso.

nTimeOut

Numrico

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

Referncia

Retorno
cBuffer
(caracter)
String de bytes retornados pelo servio chamado. Cada servio pode retornar um buffer composto de uma string de bytes / caracteres, a
ordem e interpretao deste retorno deve ser conhecida pela aplicao que o utiliza.
Observaes
Para realizar a conexo, necessrio informar o destino, que pode ser o IP ou o nome da mquina, e, em seguida, o nmero da porta de
comunicao que ser utilizada para realizar a unio atravs dessa porta. Atravs do parmetro cReq, devemos informar uma string, que ser
enviada para o servidor-alvo da conexo, caso a conexo seja estabelecida. Aps ser enviada, o Protheus Server aguardar por um retorno, at
que o time-out seja atingido ou a conexo seja encerrada pelo server. A funo retornar uma string contendo o buffer retornado pelo
servidor-alvo da conexo. Caso o parmetro de time-out informado seja 0 (zero), a funo aguardar indefinidamente uma resposta do servidor
para a conexo efetuada.A conexo ser realizada a partir do TOTVSAppServer, mesmo que a aplicao Advpl seja iniciada e/ou executada a
partir do TOTVSSmartClient.
Uso em servios e/ou protocolo com conexo persistente
Como a conexo realizada no persistente, e o fluxo de recebimento de dados tambm no oferece maiores controles, o uso desta funo
indicado apenas para integraes com sistemas de conexo no-persistente. O uso desta funo tambm recomendvel para requisies
"curtas" de dados, nada que precise trafegar mais do que 1 KB
Caso a funo seja utilizada com um protocolo persistente, por exemplo HTTP 1.1, mesmo que a funo complete o recebimento da requisio
em poucos segundos, como a conexo no servidor-alvo no fechada, a funo ficar em espera de recebimento, at que seja atingido o tmepo
especificado de time-out , para ento retornar ao programa Advpl a string de dados recebida. Caso o parmetro especificado seja 0 (zero), a
conexo permanece aberta at que ela seja fechada pelo server, e/ou ocorra um evento de indisponibilidade / desconexo de rede. Por isso,
indepentende do protocolo, no recomendamos o uso desta funo com time-out zero.
Exemplos

/*No exemplo abaixo, usamos a funo para simular uma chamada de requisio HTTP
para a pgina principal do servidor www.google.com , na porta 80 ( http ) */
User Function TstCSock()
Local cIp
:= "www.google.com"
Local nPorta := 80
Local ntimeOut := 5
Local cHttpGet := ""// Monta pacote de requisio HTTP bsico
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 requisio
cRet := socketconn(cIp,nPorta,cHttpGet,nTimeOut)// Mostra o retorno na tela
MsgStop(cRet,"SOCKET RESPONSE")
Return
Abrangncia
Protheus 10 , TOTVS Application Server 10 , ByYou Application Server

You might also like