Socket (gb.net)
Cette classe implémente un socket client pour permettre à vos programmes de se connecter aux sockets serveurs. Les connexions TCP et Local (sockets UNIX) sont implémentées.
Propriétés
Host
|
L'hôte auquel vous aimeriez vous connecter.
|
LocalHost
|
Une fois la connection TCP établie, cette propriété indique l'adresse IP local utilisée par cette connection.
|
LocalPort
|
Une fois la connection TCP établie, cette propriété indique le port local (1-65535) utilisé par cette connection.
|
Path
|
Retourne ou définit le chemin du socket local auquel vous voulez vous connecter.
|
Port
|
Le port vers lequel vous souhaitez vous connecter sur l'hôte distant.
|
RemoteHost
|
Une fois la connection TCP établie, cette propriété indique l'IP distant utilisée par cette connection.
|
RemotePort
|
Une fois la connection TCP établie, cette propriété indique le port distant (1-65535) utilisé par cette connection.
|
Server
|
Si le socket a été créé par la Méthode Accept d'un ServerSocket,
retourne cet objet ServerSocket.
|
Status
|
Indique l'état actuel d'un objet Socket.
|
StatusText
|
|
Timeout
|
Retourne ou définit le délai d’attente d’un socket, en millisecondes.
|
Propriétés héritées
Blocking
|
Retourne ou définit si le flux est bloquant.
|
ByteOrder
|
Retourne ou indique l'ordre des octets utilisé pour lire ou écrire des données binaires dans un flux.
|
EndOfFile
|
Cette propriété signale si la dernière utilisation de LINE INPUT a atteint la fin du fichier au lieu de lire une ligne entière avec un caractère de fin de ligne.
|
EndOfLine
|
Retourne ou indique le retour de chariot utilisé par ce flux.
|
Eof
|
|
Handle
|
Retourne le descripteur de fichier système associé au flux Stream.
|
IsTerm
|
|
Lines
|
Retourne un objet virtuel qui permet d'énumérer un flux ligne par ligne.
|
NoShare
|
|
NullTerminatedString
|
|
Tag
|
Retourne ou définit l’étiquette associée au flux.
|
Term
|
|
Méthodes
Connect
|
Utiliser cette méthode pour établir une connection Locale (UNIX) ou RCP avec un serveur local ou TCP distant.
|
Peek
|
Cette fonction vous permet de recevoir des données depuis la Socket.
|
Méthodes héritées
Begin
|
Démarre la mise en tampon des données écrites dans le flux, de manière à ce que tout soit envoyé lors de l'appel à la Méthode Send.
|
Close
|
Ferme le flux.
|
Drop
|
Dépose les données mises en tampon depuis le dernier appel à la méthode Begin.
|
ReadLine
|
Lit une ligne de texte dans le flux, comme l'instruction LINE INPUT.
|
Send
|
Envoie toutes les données depuis le dernier appel à Begin en une seule salve.
|
Watch
|
|
Evénements
Closed
|
Cette évènement est levé après qu'une socket distante a fermée la connection.
|
Error
|
Cet évènement est levé quand certains a échoué (par exemple un hôte distant a refusé la connection).
|
Found
|
Quand la connection utilisant les sockets TCP, la première étape est de traduire le nom de l'hôte en IP de l'hôte. L'objet lèvera cet évènement quand cette partie du processus de connection est terminé.
|
Read
|
Cet évènement est levé quand les données arrivent à la socket à partir d'une autre connection.
|
Ready
|
Cet Evènement est levé après qu’une connexion ait été établie avec succès.
|
Write
|
L'Evènement Socket est levé quand le socket (connecteur) est pret pour l'écriture.
|
Cette classe effectue son travail de façon asynchrone, donc le programme ne sera pas arrêté tant qu'il y a une connexion, de l'envoi ou de la réception de données.
Cette classe est dérivée de la classe
Stream, donc vous pouvez utiliser les
Fonctions de flux et d'entrée/sortie standard pour envoyer et recevoir des données, et fermer la socket.
Les sockets peuvent être utilisées si la bibliothèque "gb.net" est incluse dans le projet.
Pour inclure cette bibliothèque utilisez le menu [Project] [Properties] [Components] et cochez le composant "gb.net".
Exemple
' 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
Remarques concernant l'exemple :
-
Malgré le codage de l'exemple, vous devriez plutôt utiliser les évènements pour répondre aux différents états.
-
Voir Network Programming, le tutoriel sur l'utilisation du réseau. Il y a des commentaires pour chaque ligne de cet exemple.
-
Il y a un autre exemple dans la distribution sous Networking: ClientSocket.