Android ProgrammingAuf das Bild klicken um zur Hauptseite zurück zu kehren.


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:

ServerSocket
Socket

UDPPacket
UDPSocket


ServerSocket

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:

Close

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.


Socket

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:

Close

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.

TimeOut As Int

Holt oder setzt das Verbindungstimeout des InputStreams des Socket Objektes. Der Wert muß in Millisekunden eingegeben werden. Standardmäßig ist kein Timeout.

UDPPacket

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:

Data() As Byte [read only]

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

Length As Int [read only]

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

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:

Close

Schließt das Socket.

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.

toString As String


Top