Árvore de páginas

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.
portuguese
Composition Setup
import.css=/download/attachments/3279126062824/newLayouttecnologia.css

Pagetitle

...

...

Classe TSocketClient
Classe

...

TSocketClient

Estabelece

...

uma

...

conexão

...

client

...

de

...

socket

...

do

...

tipo

...

TCP

...

genérica.Através

...

desta

...

classe,

...

é

...

possível

...

enviar

...

e

...

receber

...

dados

...

por

...

meio

...

de

...

um

...

socket

...

genérico

...

e

...

utilizar

...

como

...

base

...

para

...

implementação

...

de

...

protocolo

...

não

...

suportado

...

pela

...

aplicação.

Hierarquia

  • TSocketClient

Construtores

Inclusão de trecho
Classe TSocketClient - Construtores
Classe TSocketClient - Construtores
nopaneltrue

Métodos

Inclusão de trecho
Classe TSocketClient - Métodos
Classe TSocketClient - Métodos
nopaneltrue

Exemplos

    nRetorno()
  • Retorna 0 (zero) se conectar com sucesso; caso contrário, a conexão falhou.

GetError

Permite recuperar um código e uma string correspondendo à ultima ocorrência do Socket client registrada em caso de falha.

TSocketClient(): GetError ( ) --> cRetorno

    cRetorno(caracter)
  • Retorna um código e uma string que corresponde à última ocorrência de SocketClient registrada em caso de falha. Caso não haja nenhuma falha registrada, a função retorna 0 (zero).
Método disponível em build superior a 7.00.101202A.

IsConnected

Verifica se existe conexão válida no objeto corrente.

TSocketClient(): IsConnected ( ) --> lRetorno

    lRetorno(logico)
  • Retornar verdadeiro (.T.), se a conexão estiver ativa, ou falso (.F.), caso esteja inválida/desconectado.

Receive

Recebe qualquer tipo de dado pela conexão ativa do objeto.

TSocketClient(): Receive ( < cBuffer>, < nTimeout> ) --> nRetorno

    nRetorno()
  • Retorna a quantidade de bytes recebidos. Caso ocorra algum erro, a quantidade recebida será menor que zero.

Reset

Encerra a conexão sem avisar o outro lado.

TSocketClient(): Reset ( ) -->

Utilize este método somente em casos extremos.

Send

Transmite o buffer pela conexão TCP genérica ativa.

TSocketClient(): Send ( [ cBuffer] ) --> nRetorno

    nRetorno()
  • Retorna o número de bytes transmitidos. Caso o número seja diferente do tamanho especificado, no parâmetro cBuffer, algum erro aconteceu.
//Neste exemplo, observe a utilização de um cliente socket, note que para o programa funcionar corretamente, deve-se alterar os parâmetros da conexão.user function MySocketLocal oObj := tSocketClient():New()
nResp := oObj:Connect( 
999
nPort,nIp,
"172.255.255.255", 1000 ) if(nResp == 0 ) Conout( "Conexão OK!" )else Conout( "Erro na Conexão OK! ", nResp ) returnendifcSend = "Ola!!!! Estou transmitindo um dado!"nResp := oObj:Send( cSend )if( nResp != len( cSend ) )
10 )
  // -------------------------------
  // Se conectou abandona o FOR
  // -------------------------------
  if(nResp == 0 )
    exit
  else
    conout("--> Tentativa de Conexão: " + StrZero(nX,3))
    Sleep(2000) 
    continue
  endif
Next           
conout(

 
"Erro!
 
Dado
 
nao
 
transmitido" )else conout( "Dado Enviado" )endifcBuffer := ""nQtd = oObj:Receive( cBuffer, 10000 ) if( nQtd >= 0 ) conout( "Dados Recebidos " + Str( nQtd, 4, 0 ), cBuffer )else conout( "Nao recebi nada" )endifcSend = "Dados que será transmitido!!!"

// --------------------------------------
// Verifica se a conexão foi bem sucedida
// --------------------------------------
if( !oObj:IsConnected() ) 
  conout("--> Falha na conexão")
  return 
else
  conout("--> Conexão OK")
endif

// -------------------------------
// Teste de envio para o socket
// -------------------------------
cSend := "Dados enviados pelo AdvPL..."
nResp := oObj:Send( cSend )
if( nResp != len( cSend ) )               

  conout( "--> Erro! Dado 
nao
não transmitido" )
else
  
conout( "--> Dado Enviado - Retorno: "
)endifif( oObj:IsConnected() ) conout( "OK! Estou conectado" )else
 +StrZero(nResp,5) )
endif

// -------------------------------
// Teste de recebimento do socket
// -------------------------------
cBuffer := ""
nResp = oObj:Receive( @cBuffer, 10000 ) 
if( nResp >= 0 )
    conout( "
Ops! Nao estou conectado" )endifoObj:CloseConnection()if( !oObj:IsConnected() )
--> Dados Recebidos " + StrZero(nResp,5) )
    conout( "--> ["+cBuffer+"
Desconectei
]" )
else
    conout( "
Ainda
--> 
estou
Não 
conectado, erro na desconexao
recebi dados" )
endif

// -------------------------------
// Fecha conexão
// -------------------------------
oObj:CloseConnection()
conout( "--> Conexão 
return Advanced Protheus 6.09 , Advanced Protheus 7.10 , Microsiga Protheus 8.11 , Protheus 10 , TOTVS Application Server 10 , ByYou Application Server
fechada" )
Return
Bloco de código
languagecpp
themeEclipse
titleExemplo 1
linenumberstrue
collapsefalse
 #INCLUDE 'TOTVS.CH'
// --------------------------------------------
// Exemplo de conexão via Socket, neste caso
// será conectado um socket em Delphi via AdvPL
// --------------------------------------------
User Function SocketTest()
Local oObj := tSocketClient():New()
Local nX := 0

// -------------------------------
// Tenta conectar 3 vezes
// -------------------------------
For nX := 1 to 3         
  nPort := 812
  nIp := 'localhost'
  
New

New

Cria o objeto TSocketClient sem conexão ativa.

TSocketClient(): New ( ) --> oRetorno

    oRetorno()
  • Retorna um objeto do tipo TSocketClient.

CloseConnection

Encerra a conexão TCP genérica (socket) do objeto corrente.

TSocketClient(): CloseConnection ( ) -->

Connect

Estabelece uma conexão TCP genérica (socket).

TSocketClient(): Connect ( < nPorta>, < cIP>, < nTimeout> ) --> nRetorno

NomeTipoDescriçãoObrigatórioReferência
nPortaNuméricoIndica o número da porta onde a conexão será realizada. X cIPCaracterIndica o número IP ou nome do servidor onde a conexão será realizada. X nTimeoutNuméricoIndica o número em milissegundos onde o método deve esperar para conectar. X
NomeTipoDescriçãoObrigatórioReferência
cBufferCaracterIndica o buffer que contém os dados a serem recebidos. X nTimeoutNuméricoIndica o tempo em milissegundos, que o método receive aguarda, para receber algum dado pela conexão. X
NomeTipoDescriçãoObrigatórioReferência
cBufferCaracterIndica a buffer que contém os dados que serão transmitidos pela conexão.