Benutzer-Werkzeuge

Webseiten-Werkzeuge


Seitenleiste

Kommunikation und Netzwerk

k24:k24.1:start

24.1.0 Netzwerk-Komponenten

Die Seiten unter http://gambaswiki.org/wiki/doc/network sollten Sie aufmerksam durchlesen. Sie enthalten neben vielen Informationen für den Einsatz der unterschiedlichen Komponenten und deren Klassen auch die Quelltexte für einige Server und Clients.

Wenn Sie Clients erproben wollen, die eine Verbindung zu einem Server im Internet aufbauen, dann ist es sinnvoll zu testen, ob die Clients einen Zugang zum Internet nutzen können. In Ihren Projekten können Sie für einen Test die folgende, gut kommentierte Prozedur CheckNetwork() einsetzen:

[1] Public Sub CheckNetwork()
[2]   Dim sResponse As String
[3]   Dim sIPAddress As String
[4]   Dim sErrText As String
[5] 
[6]   'Check connection to router by trying to obtain the IP address of the gateway
[7]   'Test der Verbindung mit dem Router durch Ermittlung der Gateway IP-Adresse
[8]   Shell ("ip route show | grep 'default via' | grep -oE '" & Chr$(40) & "[[:digit:]]{1,3}" & Chr$(92) & "." & Chr$(41) & "{3}[[:digit:]]{1,3}'") To sIPAddress
[9]   If sIPAddress = "" Then
[10]     'Get a brief status of all available network interfaces
[11]     'Hole den Status (Überblick) aller Netzwerk-Schnittstellen
[12]     Shell ("nmcli device status") To sResponse
[13]     sErrText = ("<pre><font face='Noto Sans' size='3'>No connection to lokal router! Please check the router and network connections:")
[14]     sErrText &= "<pre><font face='Monospace' size='2'>" & sResponse
[15]     sErrText &= ("<pre><font face='Noto Sans' size='3'>The application will be terminated.")
[16]     Message.Error(sErrText)
[17]     Quit
[18]   Else 
[19]  'Additional check for VMs, which may have provided a gateway address although they have no connection to the router. This is done by trying to connect to the Web-Interface of the router.
[20]  'Zusätzliche Prüfung für VMs, die u.U. eine Gateway-Adresse geliefert haben, obwohl keine Verbindung zum Router besteht! Das wird durch den Versuch eines Verbindungsaufbaus mit dem Web-Interface des Routers geleistet.
[21]     Shell ("wget -q --spider " & "http://" & Left$(sIPAddress, Len(sIPAddress) - 1) & " ; echo $?") To sResponse
[22]     If Left$(sResponse, 1) <> "0" Then
[23]       'Get a brief status of all available network interfaces
[24]       'Hole den Grob-Status aller Netzwerk-Schnittstellen
[25]       Shell ("nmcli device status") To sResponse
[26]       sErrText = ("<pre><font face='Noto Sans' size='3'>No connection to lokal router! Please check the router and network connections:")
[27]       sErrText &= "<pre><font face='Monospace' size='2'>" & sResponse
[28]       sErrText &= ("<pre><font face='Noto Sans' size='3'>The application will be terminated.")
[29]       Message.Error(sErrText)
[30]       Quit
[31]     Endif
[32]   Endif
[33]  
[34]   'Check availability of Internet by testing the availability of the Google home page.
[35]   'Verfügbarkeit des Internets testen durch einen Verbindungsaufbau mit der Google-Homepage.
[36]   If Exist("/usr/bin/curl") Then 
[37]  'Check whether curl is installed. If yes - use it. 
[38]  'Testen, ob curl installiert ist. Wenn ja – nutzen Sie das Programm.
[39]     Shell ("curl ifconfig.me") To sResponse
[40]     'If the Internet was connected, sResponse will contain the external (WAN) IP address.
[41]     'Wenn das Internet verbunden war, enthält sResponse die externe WAN-IP-Adresse.
[42]     'Das ist die IP-Adresse, die vom Provider zugewiesen wurde.
[43]     Print "External WAN IP address: "; sResponse  
[44]     If Len(sResponse) <= 7 Then
[45]        Message.Error(("No connection to the Internet!<hr>The application will be terminated."))
[46]       Quit     
[47]     Endif
[48]   Else
[49]     'Use this alternative method if curl is not installed
[50]     Shell ("wget -q --spider google.com ; echo $?") To sResponse
[51]     If Left$(sResponse, 1) <> "0" Then
[52]       Message.Error(("No connection to the Internet!<hr>The application will be terminated."))
[53]       Quit
[54]     Endif
[55]   Endif
[56]  
[57] End

24.1.0.1 Komponente gb.net

Die Komponente gb.net ermöglicht es Ihnen, Netzwerk-Clients und Netzwerk-Server in Gambas zu implementieren. Außerdem können Sie die serielle Schnittstelle (RS232/V24) verwalten. Die Komponente enthält folgende Klassen:

  • SocketClient
  • ServerSocket
  • UdpSocket (Client und Server)
  • DnsClient
  • SerialPort
  • Net (Konstanten)

24.1.0.2 Komponente gb.net.curl

Die Komponente gb.net.curl implementiert ein High-Level-Netzwerkprotokoll-Management auf der Basis der Curl-Bibliothek. Die Komponente ermöglicht den Abruf von http- und ftp-Dateien – möglicherweise auch anderer Dateien – über ein Netzwerk. Die Komponente enthält folgende Klassen:

  • Curl
  • FtpClient
  • HttpClient

24.1.0.3 Komponente gb.mime

Die Komponente gb.mime erlaubt es Ihnen, eine Zeichenfolge zu analysieren und diese in eine MIME-Nachricht zu wandeln und umgekehrt. Die Komponente basiert auf der gmime-Bibliothek. Die Komponente enthält folgende Klassen:

  • Mime
  • MimeMessage
  • MimePart

24.1.0.4 Komponente gb.net.pop3 und gb.net.smtp

  • Die Komponente gb.net.pop3 implementiert einen POP3-Client. Sie erlaubt Ihnen, eine EMail über das POP3-Protokoll abzurufen. Es unterstützt Protokoll-Verschlüsselung (SSL oder TLS), wenn das Open-SSL-Programm auf Ihrem System installiert ist. Die Komponente enthält die Klasse POP3Client.
  • Die Komponente gb.net.smtp dagegen ermöglicht es Ihnen, EMails mit Hilfe des SMTP-Protokolls zu senden. Es unterstützt EMail-Anhänge, EMail-Alternativen und Protokoll-Verschlüsselung (SSL oder TLS), sofern das OpenSSL-Programm auf Ihrem System installiert ist. Die Komponente enthält die Klasse SMTPClient.

24.1.0.5 Komponente gb.web

Die Komponente gb.web erlaubt es Ihnen, eine Web-Anwendung zu entwickeln – basierend auf einem CGI-Skript. Die Komponente enthält folgende Klassen:

  • Application
  • CGI
  • Request
  • Response
  • Session
  • URL
  • WebPage
  • JSON
  • JSONCollection

24.1.0.6 Komponente gb.markdown

Die Komponente gb.markdown ermöglicht es Ihnen, die Gambas-Markdown-Syntax in HTML zu konvertieren. Diese Umwandlung kann durch den Einsatz von Eigenschaften und Methoden der Markdown-Klasse angepasst werden. Die Komponente enthält folgende Klassen:

  • Markdown
  • MarkdownLink

24.1.0.7 Komponente gb.map

Mit den Klassen der Komponente gb.map gelingt es, Kartenkacheln aus verschiedenen Quellen in mehreren Schichten anzuzeigen. Die Komponente enthält folgende Klassen:

  • Geo
  • Map
  • MapBounds
  • MapPoint
  • MapView

24.1.0.8 Komponente gb.map

Mit Hilfe der Komponente gb.dbus nutzen Sie das D-Bus-Interface Ihres Rechners. Die Komponente enthält folgende Klassen:

  • DBus
  • DBusApplication
  • DBusConnection
  • DBusObject
  • DBusObserver
  • DBusProxy
  • DBusSignal
  • DBusVariant

Hinweis:

Sie sollten beachten, dass die Komponente gb.web.form – eingeführt in Gambas 3.9 – als veraltet gilt. Für neue Projekte ist die adäquate Komponente gb.web.gui (3.15) einzusetzen.

Download

Die Website verwendet zwei temporäre Session-Cookies. Diese technisch notwendigen Cookies werden gelöscht, wenn der Web-Browser geschlossen wird! Informationen zu Cookies erhalten Sie in der Datenschutzerklärung.
k24/k24.1/start.txt · Zuletzt geändert: 24.08.2020 (Externe Bearbeitung)

Seiten-Werkzeuge