2011-01-02 8 views
1

ich ein Datagramm-Socket erschaffe unten in meiner Anwendung wie:java.net.BindException beim Erstellen von Datagramm-Socket in Android auf Mac

DatagramSocket socket = new DatagramSocket(60000, 
         InetAddrByName("192.168.1.72")); 

Diese Datagramm Konstruktor kehrt mit Ausnahme

java.net.BindException: The requested address could not be bound. 

Ich habe die Datei android.permission.INTERNET zu meiner Manifest-Datei hinzugefügt. Ich benutze iMac und Eclipse 3.4.2. Ich habe überprüft, dass Port 60000 frei ist. Auch 192.168.1.72 ist meine IP-Adresse. Also, was könnte das Problem sein?

Antwort

0

Was bedeutet "meine IP-Adresse".

Dies ist eine der Adressen, die Sie beim Aufzählen der NetworkInterface-Instanzen auf dem Gerät sehen?

+0

Ich meine meine Ethernet-IP-Adresse. Und es ist wie im Code-Snippet angegeben. –

+0

Nun, dieser Kommentar enthält kein einziges bisschen Information mehr oder weniger als Ihr Original. Es ist nicht nützlich, wenn Sie möchten, dass Ihre Frage beantwortet wird. Wir versuchen Ihnen zu helfen, indem wir die Unsicherheit beseitigen und dann entscheiden, ob wir helfen können oder ob wir es nicht wissen. Tatsächlich gibt es viel Unsicherheit: Laufen Sie auf dem Gerät oder dem Emulator? Die IP-Adresse ist die Adresse des (emulierten oder nicht) Geräts oder der Zieladresse. Da ich Ihre Kenntnisse nicht kenne, können solche Fragen gültig sein. – mtraut

+0

Ich verwende App nur im Emulator. –

1

von Entwickler-Website auf localhost aus der emulierten Umgebung

Wenn Sie Ihren Host-Computer localhost verweisen müssen Bezug genommen, wie wenn Sie das Emulator-Client für einen Server auf demselben zu kontaktieren Host, verwenden Sie den Alias ​​10.0.2.2, um auf die Loopback-Schnittstelle des Host-Computers zu verweisen. Aus Sicht des Emulators verweist localhost (127.0.0.1) auf seine eigene Loopback-Schnittstelle.

+0

Ich möchte nur meinen Socket an meine Ethernet-IP-Adresse binden. Sonst werde ich damit umgehen. –

Verwandte Themen