2012-04-04 2 views
0

Android 클라이언트에는 통신용 ZeroC - Ice 플랫폼을 사용하는 클라이언트 및 서버 앱이 있습니다. 서버는 TCP 포트 10000에서 수신 대기하고 클라이언트는 TCP 포트 5501 (내가 선택한 임의의 포트 번호)을 사용합니다.redir 대신 adb forward 사용

서버에 텔넷하고 redir add tcp:5501 tcp:10000을 실행할 때 원활하게 작동합니다.

그러나 현재 시스템 설치로 인해 (가상 시스템을 통한 androidx86 바이너리 사용) 더 이상 서버에 텔넷 할 수 없습니다. 그래서 대신 adb forward을 사용할 수 있기를 바랬습니다. 그러나, 내가 시도한 포트 조합이 무엇이든, 나는 그것을 작동시키지 못했습니다.

누군가가 다음에 대해 설명해 주시면 감사하겠습니다 : - 장치 복제 또는 장치로 텔넷 할 수 있습니까? stackoverflow에 대한 또 다른 게시물에 텔넷 인터페이스는 에뮬레이터에서만 사용할 수 있습니다. - rediradb forward의 차이점은 무엇입니까? 서버에서 redir tcp:A:B을 달성하기 위해 adb 포워딩을 어떻게 사용해야합니까?

감사합니다.

답변

0

나는 마침내 작동하도록했습니다. 여러 의견

  • 이더넷으로 연결된 장치에 연결할 수 없습니다. 무선 네트워크를 통해 연결할 수 있습니다 (상대방과 동일한 네트워크에 연결되어 있다고 가정).
  • VirtualBox에는 자체 NAT 전달 기능이 있습니다. 포트 포워딩없이 NAT (기본 네트워킹 구성)에서 가상 장치가 작동하지 않습니다. 다음과 같이

내 작업 설정은

  • 의 USB 연결 장치 (보통은 192.168.2.x 같은 당신의 PC의 로컬 IP 주소를 알아)
  • 무선을 통해 PC에 연결
  • NAT 용 VirtualBox 전달을 사용하도록 설정했습니다. 내 옵션은 TCP 10000 : 10000 (여기서 10000은 임의의 포트 번호이며, 1024보다 높아야 함) USB 연결 장치가 포트 10000에서 PC에 연결되면 VirtualBox의 전달을 통해 가상 장치로 전달됩니다 .
  • 가상 장치는 당신이 'NetworkOnMainThread'예외가있는 경우,
  • (내가 인생을 더 쉽게하기 위해 호스트 주소를 지정하지 않은)

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

희망이를 사용하는 TCP 포트 10000을 청취 도움이된다