2012-04-04 22 views
0

Ich habe einen Client und eine Server-App auf Android (die ZeroC - Ice-Plattform für die Kommunikation verwendet). Der Server überwacht den TCP-Port 10000 und der Client verwendet den TCP-Port 5501 (willkürliche Portnummern, die ich gewählt habe).Verwenden Sie adb Forward statt Redir

Wenn ich Telnet zu Server und redir add tcp:5501 tcp:10000 ausführen, funktioniert es reibungslos.

Allerdings, aufgrund meiner aktuellen System-Setup (mit Androidenx86 Binär über eine virtuelle Maschine), kann ich nicht mehr Telnet auf den Server. Also habe ich gehofft, ich könnte stattdessen adb forward verwenden. Wie auch immer die Port-Kombination ich versuchte, ich konnte es nicht zum Laufen bringen.

Ich würde mich sehr freuen, wenn jemand etwas Licht auf diese werfen könnte: - Ist es möglich, Telnet zu einem Gerät replizieren oder Gerät? Ich habe in einem anderen Beitrag auf Stackoverflow gelesen, dass Telnet-Schnittstelle nur für Emulator verfügbar ist - Was ist der Unterschied zwischen redir und adb forward? Wie sollte ich die adb-Weiterleitung verwenden, um redir tcp:A:B auf dem Server zu erreichen?

Danke

Antwort

0

Ich habe es endlich geschafft, es zur Arbeit zu bringen. Mehrere Kommentare

  • USB-Geräte können nicht über Ethernet erreicht werden. Sie können über ein drahtloses Netzwerk erreicht werden (vorausgesetzt, sie sind mit demselben Netzwerk mit dem anderen Teilnehmer verbunden)
  • VirtualBox verfügt über eine eigene NAT-Weiterleitung. Ohne Portweiterleitung ist das virtuelle Gerät unter der Standardnetzwerkkonfiguration (NAT) nicht verfügbar.

Meine Arbeits Setup ist wie folgt

  • Eine USB-Schnittstelle angeschlossenen Gerät mit dem PC über eine drahtlose Verbindung (PC die lokale IP-Adresse finden Sie, die oft so etwas wie 192.168.1.x ist)
  • Ich habe VirtualBox Forwarding für NAT aktiviert. Meine Option ist TCP 10000: 10000 (wobei 10000 eine beliebige Portnummer ist. Beachten Sie, dass sie höher als 1024 sein sollte). Wenn mein USB-Gerät über Port 10000 mit dem PC verbunden wird, wird es über die Weiterleitung der VirtualBox an das virtuelle Gerät weitergeleitet .
  • virtuelle Gerät hört auf TCP-Port 10000. (I nicht Host-Adresse angegeben haben, um das Leben leichter zu machen)
  • Wenn Sie eine 'NetworkOnMainThread' Ausnahme, benutzen Sie diese

    StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build(); 
    StrictMode.setThreadPolicy(policy); 
    

Hoffnung bekommen hilft jemandem