Network /
Netzwerk
Die Netzwerk Library enthält zwei Objekte: Socket and ServerSocket. Mit
Socket kann man, über TCP/IP,
mit anderen Geräten und Computern kommunizieren.
ServerSocket erlaubt auf einkommende Verbindungen zu hören. Sobald eine
Verbindung erstellt ist bekommt man ein Socket Objekt das zur Behandlung dieser
Verbindung verwendet wird.
Die Library enthält auch zwei Objekte die erlauben mit UDP zu arbeiten:
UDPSocket und UDPPacket. Siehe UDPSocket für mehr Informationen.
Siehe das Network
(Netzwerk) Tutorial (deutsch) oder Network
tutorial (englisch).
Liste der Typen:
Das ServerSocket Objekt erlaubt andere Maschinen mit diesem Gerät zu
verbinden.
Das ServerSocket Objekt hört eine bestimmte Schnittstelle (port) ab. Sobald
eine Verbindung eingeht, wird ein NewConnection Event ausgelöst das ein Socket
Objekt zurück gibt.
Dises Socket Objekt wird verwendet um mit diesem Kunden zu kommunizieren.
Man kann die Listen Methode neu aufrufen um
andere Verbindungen zu erhalten. Ein einziges ServerSocket Objekt kann viele
Verbindungen behandeln.
Für jede Verbindung darf aber nur ein einziges Socket Objekt verwendet
werden.
Permissions /
Erlaubnisse:
android.permission.INTERNET
Events:
NewConnection (Successful As Boolean, NewSocket As Socket)
Members:
Close
GetMyIP As String
Initialize
(Port As Int, EventName As String)
IsInitialized
As Boolean
Listen
Members Erklärung:
Schließt das ServerSocket
Objekt, schließt aber keine andere Sockets.
Sie müssen Initialize aufrufen wenn Sie
das Objekt wieder verwenden wollen.
GetMyIP As String
Gibt das IP (Internet Protokoll) des Servers zurück.
Gibt "127.0.0.1" (localhost) zurück wenn kein IP gefunden wurde.
Initialize (Port As Int, EventName As String)
Initialisiert das
ServerSocket.
Port – Die Schnittstelle (Port) die der Server abhört. Beachten Sie daß Sie die
Listen Methode aufrufen müssen um das Abhören zu starten.
EventName – Das Präfix des Subroutinenamen.
IsInitialized As Boolean
Testet ob das Objekt
initialisiert ist oder nicht.
Listen
Startet, im
Hintergrund, das Abhören auf eingehende Verbindungen.
Wenn eine Verbindung erstellt ist wird ein NewConnection Event ausgelöst. Wenn die Verbindung erfolgreich ist
wird ein Socket Objekt übergeben.
Listen aufrufen, wenn das ServerSocket Objekt schon am
Abhören ist, verursacht gar nichts.
Das Socket Objekt ist ein Endpunkt für die Netzwerkkommunikation.
Wenn Sie mit einem Server verbunden sind, müssen Sie ein Socket Objekt
initialisieren und Connect, mit der Server-Adresse,
aufrufen.
Ein Connected Event wird ausgelöst, wenn die Verbindung fertig ist
oder wenn sie fehlgegangen ist.
Sockets werden auch vom Server verwendet. Sobald eine neue eingehende
Verbindung hergestellt ist, wird das NewConnection Event ausgelöst und
ein initialisiertes Socket Objekt wird als Parameter übergeben.
Sobald ein Socket Objekt angeschlossen ist, müssen Sie InputStream und OutputStream benutzen, um mit der
anderen Maschine zu kommunizieren.
Permissions /
Erlaubnisse:
android.permission.INTERNET
Events:
Connected (Successful As Boolean)
Members:
Close
Connect (Host As String, Port As Int, TimeOut As Int)
Connected As Boolean [read only]
Initialize
(EventName As String)
InputStream As java.io.InputStream [read only]
IsInitialized As Boolean
OutputStream As java.io.OutputStream [read only]
ResolveHost (Host As String) As String
TimeOut As Int
Members Erklärung:
Schließt das Socket Objekt
und die Streams (Ströme).
Zur Sicherheit soll man diese Methode öfters aufrufen.
Connect (Host As String, Port As Int, TimeOut As Int)
Versucht eine Verbindung mit
der gegebenen Adresse aufzubauen. Die Verbindung wird im Hintergrund
durchgeführt.
Ein Connected Event wird ausgelöst wenn die Verbindung erstellt ist
oder wenn sie fehlgegangen ist.
Host – Der Host-Name oder das IP.
Port - Port Nummer.
TimeOut - Verbindungstimeout. Der Wert muß in Millisekunden eingegeben werden.
0 eingegeben um das Timeout
zu deaktivieren.
Connected As Boolean [read only]
Testet ob das Socket Objekt
verbunden ist oder nicht.
Initialize (EventName As String)
Initialisiert ein neues
Socket Objekt.
InputStream As java.io.InputStream
[read only]
Gibt den InputStream des
Socket Objekts zurück, der zum lesen der Daten verwendet wird.
IsInitialized As Boolean
Testet ob das Objekt
initialisiert ist oder nicht.
OutputStream As java.io.OutputStream
[read only]
Gibt den OutputStream
des Socket Objekts zurück, der zum schreiben der Daten verwendet wird.
ResolveHost (Host As String) As String
Sucht nach dem Hostnamen und
gibt die IP-Adresse zurück.
Holt oder setzt das
Verbindungstimeout des InputStreams des Socket Objektes. Der Wert muß in
Millisekunden eingegeben werden. Standardmäßig ist kein Timeout.
Ein Paket (packet) von Daten
das gesendet oder erhalten wird.
Um ein Paket zu senden muß man eine der Initialize Methoden aufrufen und dann
das Paket senden in dem man es an UDPSocket.Send übergibt.
Wenn ein Paket einkommt kann man die Daten in dem Paket von den zur Verfügung
stehenden Parametern bekommen.
Events:
None
Members:
Data() As Byte [read only]
Host As String [read only]
Initialize (Data() As Byte, Host As String, Port As Int)
Initialize2 (Data() As Byte, Offset As Int, Length As Int, Host As String, Port As Int)
IsInitialized As Boolean
Length As Int [read only]
Offset As Int [read only]
Port As Int [read only]
toString As String
Members Erklärungen:
Holt das einkommende Datenarray.
Host As String [read only]
Holt den Host-Namen oder die IP-Adresse des sendenden
Geräts.
Initialize (Data() As Byte, Host As String, Port As Int)
Initialisiert das Paket und stellt es zum senden
bereit.
Data – Die zu sendenden Daten.
Host – Der Ziel-Name oder die Ziel-Adresse.
Port – Die Ziel-Schnittstelle (port).
Initialize2 (Data() As Byte, Offset As Int, Length As Int, Host As String, Port As Int)
Ähnlich wie Initialize. Die Daten basieren auf den
Offset und Length (Länge) Werten.
IsInitialized As Boolean
Holt die Länge (length) der zur Verfügung stehenden
Daten. Diese kann kürzer sein als die Arraylänge.
Offset As Int [read only]
Holt das Offset im Datenarray wo die Daten starten.
Port As Int [read only]
Holt die Schnittstelle des sendenden Geräts.
toString As String
UDPSocket erlaubt das Senden
und Erhalten von UDPPackets. Senden von Paketen wird durch den Aufruf von der
Send Methode durchgeführt.
Wenn ein Paket einkommt wird das PacketArrived Event mit dem Paket erzeugt.
Dieses Beispiel sendet einen String zu einem Gerät. Wenn ein
Paket einkommt wird dieses in einen String umgewandelt und angezeigt:
Sub process_globals
Dim
UDPSocket1 As UDPSocket
End Sub
Sub Globals
End Sub
Sub Activity_Create(FirstTime As Boolean)
If
FirstTime Then
UDPSocket1.Initialize("UDP", 0, 8000)
End If
Dim
Packet As UDPPacket
Dim
data() As Byte
data = "Hello from Android".GetBytes("UTF8")
Packet.Initialize(data, "10.0.0.1", 5000)
UDPSocket1.Send(Packet)
End Sub
Sub UDP_PacketArrived (Packet As UDPPacket)
Dim msg As String
msg = BytesToString(Packet.Data, Packet.Offset,
Packet.Length, "UTF8")
Msgbox("Message received: " & msg, "")
End Sub
Erlaubnisse (Permissions):
android.permission.INTERNET
Events:
PacketArrived (Packet As
UDPPacket)
Members:
Close
Initialize
(EventName As String, Port As Int, ReceiveBufferSize As Int)
IsInitialized As Boolean
Port As Int [read only]
Send (Packet As
java.net.DatagramPacket)
toString As String
Members Erklärung:
Initialize (EventName As String, Port As Int, ReceiveBufferSize As Int)
Initialisiert das Socket und wartet auf einkommende
Pakete.
EventName - Name der Subroutine die das Event behandelt.
Port – Lokale Schnittstelle (port). '0' als Eingabe überlässt dem OS die Wahl
einer zur Verfügung stehenden Schnittstelle.
ReceiveBufferSize – Grösse des einkommenden Pakets. Pakete die grösser sind als
dieser Wert, werden abgeschnitten.
'0' eingeben wenn man kein Paket bekommen will.
IsInitialized As Boolean
Testet ob das Objekt initialisiert ist.
Port As Int [read only]
Holt die Schnittstelle des Sockets.
Send (Packet As java.net.DatagramPacket)
Sendet ein Paket.