Inhaltsverzeichnis

24.1.1 Socket (gb.net)

Aus der Sicht einer Gambas-Anwendung ist ein Socket ein Zugang zum Netzwerk und kapselt die Details der Netzwerkkommunikation. Die Methoden der Socket-Klasse stellen sowohl die Funktionen zum Aufbau von Verbindungen als auch zur Kommunikation zwischen mindestens zwei Netzwerk-Teilnehmern bereit. TCP-, UDP- und lokale (Unix-Sockets) Verbindungen sind implementiert.

Beachten Sie: Den Unix-Sockets ist ein eigenes Kapitel in '24.1.4 UnixSocket' gewidmet.

Diese Klasse führt ihre Arbeit asynchron aus. Programme werden beim Verbinden, Senden oder Empfangen von Daten nicht angehalten. Diese Klasse ist von der Klasse Stream abgeleitet, so dass Sie deren Standard-Methoden zum Senden und Empfangen von Daten sowie zum Schließen des Sockets verwenden können.

So erzeugen Sie einen neuen Socket:

Dim hSocket As Socket
hSocket = New Socket() As "EventName" 

24.1.1.1 Eigenschaften

Die Klasse Socket verfügt über diese Eigenschaften:

EigenschaftDatentypBeschreibung
HostStringDer Host, zu dem sich der Client verbinden möchte (IP-Adresse oder Host-Name).
LocalHostStringSobald eine TCP-Verbindung zu einem Server hergestellt worden ist, spiegelt diese Eigenschaft die lokale IP-Adresse wider, die von dieser Verbindung verwendet wird.
LocalPortIntegerSobald eine TCP-Verbindung zu einem Server hergestellt worden ist, spiegelt diese Eigenschaft den lokalen Port (1-65535) wider, der von dieser Verbindung verwendet wird.
PortIntegerDer Port mit dem Sie sich auf dem Remote-Host verbinden möchten
RemoteHostStringSobald eine TCP-Verbindung zu einem Server hergestellt worden ist, spiegelt diese Eigenschaft die von dieser Verbindung verwendete entfernte IP-Adresse wider.
RemotePortIntegerSobald eine TCP-Verbindung zu einem Server hergestellt worden ist, spiegelt diese Eigenschaft den von dieser Verbindung verwendeten Remote-Port (1-65535) wider.
ServerServerSocketWenn ein Socket mit der Accept()-Methode eines Server-Sockets erzeugt wurde, wird mit dieser Eigenschaft ein ServerSocket-Objekt zurückgegeben. Andernfalls wird NULL zurückgegeben.
StatusIntegerSpiegelt den aktuellen Status eines Socket-Objekts wider.
TimeoutIntegerLiefert oder setzt den Wert für ein Timeout des Sockets in Millisekunden.

Tabelle 24.1.1.1.1 : Eigenschaften der Klasse Socket

Hinweise zu ausgewählten Werten (→ Kapitel 24.1.6 Net-Konstanten) der Eigenschaft Socket.Status:

24.1.1.2 Methoden

Die Klasse Socket stellt die folgenden Methoden zur Verfügung:

MethodeBeschreibung
Begin ( )Beginn der Pufferung der in den Stream geschriebenen Daten im Socket-Puffer, so dass beim Aufruf der Send()-Methode alles gesendet wird.
Send ( )Sendet alle Daten auf einen Schlag, die seit dem letzten Aufruf von Begin()-Methode im Socket-Puffer gepuffert wurden.
Drop ( )Löscht alle Daten, die seit dem letzten Aufruf der Begin()-Methode im Socket-Puffer gepuffert wurden.
Peek ( ) As StringMit dieser Funktion können Sie Daten vom Socket empfangen. Sie darf nur verwendet werden, wenn die Verbindung aktiv ist (Status = Net.Connected), sonst wird ein Fehler ausgelöst.
ReadLine ( [ Escape As String ] ) As StringLiest eine Textzeile aus dem Datenstrom, wie bei der Anweisung LINE INPUT.
Watch ( Mode As Integer, Watch As Boolean )Erlaubt die Steuerung der Überwachung des Stream-Datei-Deskriptors zum Lesen oder Schreiben, nachdem er geöffnet wurde.

Tabelle 24.1.1.2.1 : Methoden der Klasse Socket

Hinweise:

24.1.1.3 Ereignisse

Die Klasse Socket verfügt über diese Ereignisse:

EreignisBeschreibung
Closed ( )Dieses Ereignis tritt ein, nachdem die entfernte Seite des Sockets die Verbindung geschlossen hat. Die Status-Eigenschaft wird auf den Wert Net.Inactive gesetzt.
Error ( )Dieses Ereignis tritt auf, wenn Anweisungen fehlgeschlagen sind. Zum Beispiel dann, wenn der Remote-Server die Verbindung verweigert hat. Die Status-Eigenschaft wird zu einem negativen Wert, der den Fehlertyp widerspiegelt und der Socket wird automatisch geschlossen.
Found ( )Bei Verbindungen über TCP-Sockets besteht der erste Schritt darin, den Hostnamen in die Host-IP-Adresse aufzulösen oder die IP-Adresse zu bestätigen. Dieses Ereignis wird ausgelöst, wenn der Hostname erfolgreich in die Host-IP-Adresse aufgelöst wurde oder die IP-Adresse bestätigt werden konnte.
Ready ( )Dieses Ereignis wird ausgelöst, nachdem eine Verbindung zwischen Client und Server erfolgreich hergestellt wurde. Die Status-Eigenschaft wird auf den Wert Net.Connected gesetzt.
Read ( )Dieses Ereignis wird ausgelöst, wenn Daten vom Kommunikationspartner der anderen Seite der IP-Verbindung im Socket angekommen sind.
Write ( )Dieses Ereignis wird ausgelöst, wenn die internen Socket-Sendepuffer weitere Daten aufnehmen können.

Tabelle 24.1.1.3.1 : Ereignisse der Klasse Socket

Hinweis:

Download

Artikel

Download