comp • gb.net • socket

Socket (gb.net)

Essa classe implementa um socket cliente para permitir que seus programas possam se conectar com os Sockets servidores. conexões TCP e Local (Unix sockets) que são implementados.

Esta classe herda Stream em Classes nativas.
Esta classe é criável.

Propriedades

Métodos Eventos
Retorna ou define se o estream está bloqueando.
Blocking  
Retorna ou define a ordem de bytes usado para ler ou escrever dados binários para o stream.
ByteOrder  
Esta propriedade sinaliza a última utilização do LINE INPUT que chegou ao fim do arquivo, em vez da leitura de uma linha completa com um caractere de fim-de-linha.
EndOfFile  
Retorna ou define o separador de nova linha usada pelo stream.
EndOfLine  
Eof  
Retorna o descritor de arquivo do sistema associado ao Stream.
Handle  
O host para o qual você gostaria de se conectar.
Host  
IsTerm  
Retorna um objeto virtual que permite enumerar o stream, linha por linha.
Lines  
Depois que uma conexão TCP é estabelecida, esta propriedade indica o IP local utilizado por esta conexão.
LocalHost  
Depois que uma conexão TCP é estabelecida, esta propriedade indica a porta local (1-65535) utilizada por esta conexão.
LocalPort  
NullTerminatedString  
Retorna ou define o caminho do socket local que você deseja se conectar.
Path  
A porta para a qual você gostaria de se conectar no host remoto.
Port  
Depois que uma conexão TCP é estabelecida, esta propriedade indica o IP remoto utilizado por esta conexão.
RemoteHost  
Depois que uma conexão TCP é estabelecida, esta propriedade indica a porta remota (1-65535) utilizada por esta conexão.
RemotePort  
Se o socket foi criado pelo método Accept de um ServerSocket, então, retorna o objeto ServerSocket.
Server  
Indica o estado atual de um objeto Socket.
Status  
Retorna ou define a tag associado ao Stream.
Tag  
Term  
Retorna ou define o tempo limite do soquete, em milissegundos.
Timeout  
Inicia o buffer de escrita de dados para o stream, de modo que tudo será enviado quando o método Send for chamado.
Begin  
Fecha uma stream.
Close  
Utilize este método para estabelecer uma conexão TCP ou local (Unix) com um servidor remoto ou local.
Connect  
Libera os dados que foi buffered desde a última chamada do método Begin.
Drop  
Esta função permite receber dados do Socket.
Peek  
Ler uma linha de texto a partir do stream, como a instrução LINE INPUT.
ReadLine  
Envia todos os dados, de uma só vez, desde a última chamada de Begin.
Send  
Watch  
Este evento é levantado depois que o socket remoto fecha a conexão.
Closed  
Este evento levanta quando alguma falha ocorreu (por exemplo, o servidor remoto recusou a conexão).
Error  
Ao conectar usando sockets TCP, o primeiro passo é traduzir o nome de host para o host IP. O objeto irá gerar este evento quando esta parte do processo de conexão for concluída.
Found  
Este evento é levantado quando os dados chegam ao socket enviado pelo outro lado da conexão.
Read  
Este evento é levantado depois que uma conexão foi estabelecida com sucesso.
Ready  
Este evento é gerado quando o soquete está pronto para a escrita.
Write  

Esta classe realiza o seu trabalho de forma assíncrona, para que o programa não seja interrompido durante a conexão, enviando ou recebendo dados.

Esta classe é derivada da classe Stream, assim você pode usar as Funções de Stream e Entrada/Saída para enviar e receber dados, e para fechar o socket.

Sockets pode ser usado se a biblioteca "gb.net" for incluída no projeto. Para incluir esta biblioteca use o menu [Project] [Properties] [Components] marque a componente "gb.net".

Exemplo

' Gambas class file

PUBLIC MySock AS Socket

PUBLIC SUB Button1_Click()

  DIM sBuf AS String

  MySock = NEW Socket
  MySock.Connect("localhost", 7000)

  DO WHILE (MySock.Status <> 7) AND (MySock.Status > 0)
    WAIT 0.1
  LOOP

  IF MySock.Status <> 7 THEN
    PRINT "Error"
    QUIT
  END IF

  sBuf = "Hello over there.\n"
  WRITE #MySock, sBuf, Len(sBuf)

  DO WHILE Lof(MySock) = 0
    WAIT 0.1
  LOOP
  READ #MySock, sBuf, Lof(MySock)
  PRINT sBuf

  CLOSE #MySock

END

Observações sobre esse exemplo:

  • Apesar da sondagem ser mostrado aqui, você deve realmente usar retornos de chamada para reagir em diferentes estados.

  • Veja o tutorial Network Programming, sobre o uso do networking. Há comentários para cada linha deste exemplo.

  • Há um outro exemplo na distribuição sobre Networking: ClientSocket.