2010-08-05 8 views
33

이것은 android에서 adb 사용에 관한 쿼리입니다.adb 로컬 컴퓨터에 대한 원격 포트

안드로이드 장치/에뮬레이터의 포트 즉 원격 포트를 장치가 연결된 로컬 컴퓨터로 전달할 수 있습니까?

$ adb forward tcp : port1 tcp : port2 #는 장치의 로컬 포트 ​​port1을 장치의 port2로 전달합니다.

미리 감사드립니다.

+0

저는 지금 비슷한 상황에 있습니다. 그러나 저는 다른 경로를 따라 가려고합니다. 앱을 127.0.0.1:12345에 바인딩하고 해당 포트로 터널을 연결하십시오. 연결을 시작한 사람이 왜 그렇게 관심이 많습니까? 일단 TCP 연결이 설정되면 양측은 말하고 듣을 수 있습니까? –

답변

2

진정으로 포트를 전달해야합니까, 아니면 안드로이드 셸에서 실행중인 프로그램의 소켓을 호스트 컴퓨터와 통신하는 방법을 찾고 있습니까? 호스트 컴퓨터의 루프백 어댑터 인 "10.0.2.2"에 관심있는 포트로 메시지를 보냄으로써 후자를 달성 할 수있었습니다. docs here을 참조하십시오.

편집
이것은 업데이트 link

+25

에뮬레이터가 아닌 장치로 어떻게 이것을 수행 할 수 있습니까? – Johnny

+9

@ Johnnny 실제 기기에서는 역방향으로 adb를 사용합니다. 예를 들어, 호스트에 서버가 포트 8080에서 수신 대기중인 경우 장치의 포트 8000을 역방향으로 전달하려는 경우'adb reverse tcp : 8000 tcp : 8080'을 사용하십시오. – sacha

+1

@sacha I adb reverse 명령에 대한 문서를 찾을 수 없습니다. 실제로 존재합니까? SDK의 버전은 무엇입니까? – akuz

22

최근 업데이트 된 Google ADB 서비스를 제공합니다. 그리고 작업을 수행해야하는 reverse 명령을 추가하십시오. reverse 문서에서

는 :

이, 즉 호스트 장치에서 소켓 연결을 반전 할 수있는 능력 adb reverse 기능을 구현합니다. <forward-command>은 마찬가지로 전술 된 전송 명령 중 하나 이다

  1. list-forward
  2. forward:<local>;<remote>
  3. forward:norebind:<local>;<remote>
  4. killforward-all
  5. killforward:<local>

참고로이 경우 , <local>은 장치의 소켓에 해당합니다. 및 <remote>은 호스트의 소켓에 해당합니다.

reverse:list-forward의 출력은 호스트 : list-forward 과 동일하지만 <serial>은 단지 host이됩니다.

관련 문제