program tip

USB로 연결된 Android 모바일 장치에서 PC의 로컬 호스트에 액세스

radiobox 2020. 11. 12. 08:06
반응형

USB로 연결된 Android 모바일 장치에서 PC의 로컬 호스트에 액세스


USB를 통해 내 PC에 연결된 Android 장치 (삼성 갤럭시 탭)가 있습니다.

WebServices를 사용하고 내 안드로이드 장치에서 내 PC의 로컬 xampp 서버에있는 웹 페이지를 실행하고 싶습니다.

동일한 무선 네트워크에 연결된 내 PC와 Android 장치가 모두 있으면이를 달성 할 수 있습니다.

그러나 USB 연결 만 사용하여 무선 연결없이 로컬 호스트 페이지에 액세스 할 수 있습니다.

(추신 :이 시나리오는 에뮬레이터에서 앱을 실행하고 ip 10.0.2.2를 사용하여 PC의 로컬 호스트에 액세스 할 때 작동합니다.)


마침내이 문제를 해결했습니다. Froyo와 함께 Samsung Galaxy S를 사용했습니다. 아래의 '포트'는 에뮬레이터에 사용하는 것과 동일한 포트입니다 (10.0.2.2:port). 제가 한:

  1. 먼저 실제 기기를 USB 케이블로 연결하세요 (기기에 앱을 업로드 할 수 있는지 확인하세요)
  2. 연결 한 장치에서 192.168.xx : port로 시작하는 IP 주소를 가져옵니다.
  3. "네트워크 및 공유 센터"를 엽니 다.
  4. 장치에서 "로컬 영역 연결"을 클릭하고 "세부 정보"를 선택합니다.
  5. "IPv4 주소"를 앱에 복사하고 다음과 같이 바꿉니다. http://192.168.x.x:port/test.php
  6. 실제 장치에 앱을 다시 업로드하십시오.
  7. 속성으로 이동하여 "USB 테 더링"을 켭니다.
  8. 장치에서 응용 프로그램 실행

이제 작동합니다.


Google은 여기 에 이러한 종류의 문제에 대한 해결책을 게시했습니다 .

단계들:

  • USB 디버깅이 활성화 된 상태에서 Android 기기와 개발 머신을 연결합니다.
  • 개발 컴퓨터에서 Chrome을 열고 새 탭을 열고 새 브라우저 탭을 마우스 오른쪽 버튼으로 클릭 한 다음 검사를 클릭합니다.
  • 오른쪽 상단의 점 3 개 아이콘 세 점-> 기타 도구, 원격 장치를 클릭합니다.
  • 화면 하단에서 장치 이름이 목록에 녹색 점으로 표시되는지 확인합니다.
  • 아래 설정 부분을보고 포트 포워딩 마크를 확인하십시오.
  • 규칙을 추가합니다. 예를 들어 python 웹 서버가 localhost : 5000 컴퓨터에서 실행 중이고 장치 포트 3333에서 액세스 3333하려면 왼쪽 부분 에을 입력하고을 입력 한 다음 localhost:5000규칙 추가를 클릭합니다.
  • Voila, 이제 장치에서 웹 서버에 액세스 할 수 있습니다. 새 브라우저 탭을 열고 장치에서 http : // localhost : 3333방문 하십시오.

많은 포럼을 읽고 플레이 앱을 사용해 보았지만 지금까지 해결책을 찾지 못했습니다.

내 시나리오는 당신과 비슷하다고 생각하지만 다른 사람들을 돕기 위해 명확히 할 것입니다. 내 Android 애플리케이션에서 사용할 로컬 호스팅 웹 사이트와 웹 서비스가 있습니다. 랩톱 만 사용하고 네트워크 연결없이 데모를 위해 이동 중에이 작업을 수행해야합니다.

참고 : 내 iPhone을 Wi-Fi 핫스팟으로 사용하고 내 PC와 Android 기기를 모두 연결하면 작동했지만 iPhone 4S 연결이 느리고 정기적으로 끊깁니다.

내 솔루션은 다음과 같습니다.

  • PC에서 네트워크 케이블을 분리하고 Wi-Fi를 끕니다.
  • Android 기기에서 Wi-Fi 끄기
  • USB를 통해 안드로이드를 PC에 연결
  • 안드로이드 메뉴에서 "USB 테 더링"을 켭니다. (네트워크-> 더보기 ...-> 테 더링 및 휴대용 핫스팟 ")
  • USB 테더 케이블로 할당 된 컴퓨터의 IP를 가져옵니다. (명령 프롬프트를 열고 "ipconfig"를 입력 한 다음 USB 네트워크 어댑터가 할당 한 IP를 찾습니다.)
  • 테스트 할 로컬 호스트 대신 찾은 IP 주소를 사용하여 PC에서 브라우저를 엽니 다. http://192.168.1.1/myWebSite
  • Android에서 브라우저를 열고 작동하는지 테스트하십시오.

나는 Windows 컴퓨터에서 이것을했고 완벽하게 작동했습니다!

모바일에서 USB 테 더링을 켭니다. 컴퓨터의 명령 프롬프트에 ipconfig를 입력하고 "이더넷 어댑터 로컬 영역 연결 x"(대부분 첫 번째)에 대한 ipv4를 찾습니다. 이제 모바일 브라우저로 이동하여 웹 응용 프로그램의 포트 번호와 함께 ipv4를 입력합니다. 예 :-192.168.40.142:1342

그 간단한 단계로 작동했습니다!


다음은 내 Android 앱 코드입니다.

이 앱은 서버에서 실행중인 서블릿USB 디버그 가능 모드에 연결된 Android 기기간에 HTTP get-post 모델과 통신 할 수 있습니다 ( 앱이 개발 중이었기 때문에 ).

또한 서버 Tomcat Apache 7이 실행될 때 Wi-Fi를 통해 앱을 실행할 수 있습니다 ( 앱 개발이 완료되었을 때 ).

여기에 이미지 설명 입력

당신의 IP 주소를 얻으려면

  1. 명령 프롬프트로 이동
  2. 유형 ipconfig
  3. Enter를 누르십시오.

목록에서 IPv4 주소 는 사용자의 IP입니다.


실제 Android 장치에서 LocalHost에 쉽게 액세스하는 방법-> USB를 통해 PC를 Android 장치와 연결

  1. Chrome 검사로 이동하여 'f12'또는 Control + Shift + C를 클릭합니다.

크롬 검사 도구

  1. 크롬 검사 도구의 바닥을 확인하십시오.

  2. 이제 원격 장치 탭의 설정으로 이동하십시오.

원격 장치 탭

  1. "USB 장치 검색"옵션과 "포트 포워딩"옵션을 확인하십시오.

  2. 이제 규칙 추가를 클릭하고 모든 장치 포트 (예 : (4880))를 입력하고 로컬 주소에 로컬 호스트의 실제 주소를 입력합니다 (예 : (127.0.0.1:480)).

  3. 규칙을 추가 한 후 Android 스튜디오-> 코드 URL ( http://127.0.0.1:4880 ) 내부로 이동합니다 . 포트를 480-> 4880에서 변경해야합니다.

  4. Chrome의 원격 장치 탭으로 이동하여 연결된 장치를 클릭하십시오. 새 URL 추가 (127.0.0.1:4880) Android 기기 Chrome 브라우저 검사

실제 기기 Chrome 브라우저를 확인하고 실제 Android 기기에서 코드 디버깅을 시작합니다.


USB 연결 유형 옵션을 확인하십시오. "인터넷 통과"라는 이름이 있어야합니다. 그러면 휴대폰이 PC와 동일한 연결을 사용할 수 있습니다.


나는 John의 대답을 매우 좋아했지만 USB에 연결된 Mobile에서 클라이언트 TCP를 실행하고 로컬 PC에서 서버를 실행하여 일부 클라이언트 // 서버 구성을 테스트하려는 사람들에게 몇 가지 변경 사항을 제공하고 싶습니다.

먼저 10.0.2.2가 시뮬레이터가 아닌 실제 하드웨어 모바일이기 때문에 작동하지 않는다는 것이 분명합니다.

따라서 John의 지시를 따르십시오.

  • PC에서 모든 네트워크 케이블을 분리하고 Wi-Fi를 끕니다.
  • Android 기기에서 Wi-Fi 끄기
  • USB를 통해 안드로이드 장치를 PC에 연결
  • 안드로이드 메뉴에서 "USB 테 더링"(USB 모뎀 / USB 셀룰러 모뎀 / USB שימוש כמודם סלולרי)을 켭니다. (네트워크-> 더보기 ...-> 테 더링 및 휴대용 핫스팟 ")

    • This USB connection will act as a DHCP server for you single PC connection, so it'll assign your PC a dedicated (dynamic) IP in its local USB network. Now all you have to do is tell the client application this IP and port.
  • Get the IP of your PC (that has been assigned by the USB tether cable.) (open command prompt and type "ipconfig" then look for the IP that the USB network adapter has assigned, in Linux its ifconfig or Ubuntu's "Connection information" etc..)

  • Tell the application to connect to that IP (i.e. 192.168.42.87) with something like (Java - client side):

    String        serverIP      = "192.168.42.87";
    int           serverPort    = 5544;
    InetAddress   serverAddress = InetAddress.getByName(serverIP);
    Socket        socket         = new Socket(serverAddress, serverPort);
    ...
    

    Enjoy..


Connecting android phone via USB cable and accessing http server on the Computer.

  1. Firewall - switch it off, once everything works you can add a rule under Inbound rules, enable Apache HTTP Server (UDP and TCP) (or whatever HTTP server you're using) Warning - if you switch off the firewall, your computer becomes vulnerable to internet attacks. So switch off internet and disconnect from network first.
  2. Plug in the USB cable. If networking window pops up, select Home Network. If it doesn't pop up it's probably set to Public (which won't work), so go to: Control Panel\Network and Internet\Network and Sharing Center (in win7) and set it to Home Network there. It might give you a next screen after you press it to share Pictures, Music... just click cancel on it. On the main screen Home Network will still be active.
  3. You need the Computer's IP, localhost or other aliases don't work. To get the IP, in windows's command prompt, type ipconfig and look for IPv4 Address. . . . . . . . . . . : 192.168.###.### That's the IP your phone gave to your computer
  4. Now you should be done, in the phone's browser, try accessing a test html file from your computer's server it should display fine.

    For Android developers, now in your android code, you have to use "http://", otherwise it won't work. For example: MyAsyncTask.execute("http://192.168.123.123/test.html")

Part II -- Setting IP to fixed/static.

Now that things work, every time you unplug the cable and plug it back in, your IP will change. And if you are using it somewhere like inside a code, you'll have to update it every time! Solution I've come up with is to set the IP to static.

  1. Having the phone connected and tethered, go back to Network and Sharing Center and click on the Local Area connection "Connections:"

스크린 샷

  1. On the next screen select Properties, then highlight IP 4 and press properties there and click "Use the following IP address"
  2. Put Default Gateway and Subnet Mask exactly as it was in the ipconfig, and for the IP Address, only change the last 3 digits to anything from 1 to 255

스크린 샷

That IP will be your new fixed/static IP and it will remain the same next time you plug the phone.


Hello you can access your xampp localhost by

  1. Control panel -->
  2. Windows 수비수 방화벽->
  3. 고급 설정 (왼쪽)-> 인바운드 규칙-> 새 규칙-> 포트-> 특정 로컬 포트에 Apache 포트 작성-> 다음-> 다음으로 로컬 PC를 사용하여 로컬 호스트에 액세스 할 수 있습니다. IP 주소:

참고 URL : https://stackoverflow.com/questions/9887621/accessing-localhost-of-pc-from-usb-connected-android-mobile-device

반응형