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