Socket (gb.net)
Questa classe implementa un socket client che permette ai vostri programmi di connettersi a socket servers. Sono supportate connessioni TCP e Locali (Unix sockets).
Proprietà
Host
|
L'host al quale vi vorreste connettere.
|
LocalHost
|
Una volta che la connessione TCP è stabilita, questa proprietà riflette l'IP locale utilizzato dalla connessione.
|
LocalPort
|
Una volta che la connessione TCP è stabilita, questa proprietà riflette la porta locale (1-65535) utilizzata dalla connessione.
|
Path
|
Restituisce o imposta il percorso del socket locale al quale volete connettervi.
|
Port
|
La porta alla quale vorreste connettervi sull'host remoto.
|
RemoteHost
|
Una volta che la connessione TCP è stabilita, questa proprietà riflette l'IP remoto utilizzato dalla connessione.
|
RemotePort
|
Una volta che la connessione TCP è stabilita, questa proprietà riflette la porta remota (1-65535) utilizzata dalla connessione.
|
Server
|
|
Status
|
Riflette lo stato corrente di un'istanza di Socket.
|
StatusText
|
|
Timeout
|
|
Proprietà ereditate
Blocking
|
Restituisce o imposta se lo stream è bloccato.
|
ByteOrder
|
Restituisce o imposta il byte order utilizzato per leggere o scrivere dati binari nello stream.
|
EndOfFile
|
Questa proprietà permette di sapere se l'ultimo utilizzo di LINE INPUT ha raggiunto la fine del file invece di leggere una riga completa con un carattere di end-of-line.
|
EndOfLine
|
Restituisce o imposta il separatore di nuova riga utilizzato dallo stream.
|
Eof
|
Ritorna se uno stream ha raggiunto la fine.
|
Handle
|
Restituisce il descrittore del file di sistema associato allo Stream.
|
IsTerm
|
Ritorna se un flusso è associato a un terminale.
|
Lines
|
Restituisce un oggetto virtuale che consente di enumerare uno stream riga per riga.
|
NoShare
|
|
NullTerminatedString
|
|
Tag
|
Restituisce o imposta il tag associato allo stream.
|
Term
|
Restituisce un oggetto virtuale che consente di gestire il terminale associato allo stream.
|
Metodi
Connect
|
Utilizzate questo metodo per stabilire una connessione Locale (Unix) o TCP con un server locale o remoto.
|
Peek
|
Questa funzione permette di ricevere dati da un Socket.
|
Metodi ereditati
Begin
|
Inizia a bufferizzare i dati scritti nello stream, in modo che tutto venga inviato quando viene chiamato il metodo Send.
|
Close
|
Chiude lo stream.
|
Drop
|
Libera i dati che sono stati memorizzati nel buffer dall'ultima chiamata al metodo Begin.
|
ReadLine
|
Legge una riga di testo dallo stream, come l'istruzione LINE INPUT.
|
Send
|
Invia tutti i dati, in un'unica volta, dall'ultima chiamata a Begin.
|
Watch
|
Avvia o interrompe la visione del descrittore del file di stream per la lettura o la scrittura, dopo che questo è stato aperto.
|
Eventi
Closed
|
Questo evento viene generato dopo che il lato remoto del socket ha chiuso la connessione.
|
Error
|
Questo evento viene generato quando qualcosa fallisce (per esempio quando l'host remoto rifiuta la connessione).
|
Found
|
Quando ci si connette utilizzando sockets TCP, il primo passo è quello di tradurre il nome dell'host nel suo indirizzo IP corrispondente. L'oggetto genererà questo evento quando questa parte del processo di connessione sarà terminato.
|
Read
|
Questo evento viene generato quando dei dati arrivano al socket dall'altro lato della connessione.
|
Ready
|
Questo eventi viene generato dopo che una connessione è stata stabilita con successo.
|
Write
|
|
Questa classe lavora in modo asincrono, in questo modo il programma non si bloccherà connettendosi, inviando o ricevendo dati.
Questa classe deriva dalla classe
Stream, permettendovi quindi di utilizzare
flussi standard per inviare e ricevere dati, e per chiudere il socket.
I Sockets possono essere utilizzati se la libreria "gb.net" è inclusa nel progetto.
Per includere questa libreria utilizzate il menu [Project] [Properties] [Components] e spuntate il componenti "gb.net".
Examples
' 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
Commenti a questo esempio
-
Anche se qui viene illustrata solo la tecnica del polling, voi potreste in alternativa utilizzare le callbacks per reagire a differenti stati.
-
Leggete Network Programming, il tutorial sull'utilizzo del networking. Ci sono commenti per ogni linea di questo esempio.
-
C'è un altro esempio nella distribuzione in Networking ClientSocket.