마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

단말 내부 서버와 App간의 소켓 통신 문의드립니다.

0 추천
HierachyViewer에서 사용되는 단말 내부의 ViewServer와

제가 만들려는 App(단말에서 실행)과 소켓 통신을 할려 합니다.

 

emulator에서 일단 만들어보면

127.0.0.1:4939로 Socket 생성해서 명령어 보내면 동작이 됩니다.

 

하지만, 제가 만든 앱에서는 실행하면

04-29 02:40:04.385: W/System.err(30068): java.net.ConnectException: failed to connect to /127.0.0.1 (port 4939) after 40000ms: isConnected failed: ECONNREFUSED (Connection refused)
 

Error가 뜨네요 ㅡㅡ;

 

설정을 잘못한 것일까요.

ECONNREFUSED 에러 자체는 서버가 연결을 거부했다 이런식의 에러이던데요.

무엇이 잘못된건지 잘 모르겠네요. ip, port 아니면 또 다르게 설정해줘야 하는 부분이 있는지

문의 드려요.

 

App에서 소켓은 아래와 같이 생성했습니다.

Socket socket = new Socket();   
socket.connect(new InetSocketAddress("127.0.0.1", 4939), 40000);
국화향기 (430 포인트) 님이 2013년 4월 30일 질문

1개의 답변

0 추천
혹여나 permission 설정을 잊으신건 아니겠지요
aucd29 (218,390 포인트) 님이 2013년 4월 30일 답변
<uses-permission android:name="android.permission.INTERNET"/>
이거 말씀이시라면 제가 만든 App의 manifest에 추가했습니다.
설마 같은 포트에 서버를 두번 실행 시키신건 지요?
아니요.

단말의 ViewServer는
adb shell call window3 으로 실행중인거 확인하고,

제가 만든 단말 app에서 127.0.0.1 / 4939 로 socket.connect() 실행시키면 본문에서와 같이 에러가 표시되네요. 당연히 연결은 안되구요.
진행 과정 정보가 없네요

1. 단말에 ViewServer 서버를 실행
2. 동일 단말에서 만드신 Client 로 ViewServer 에 접속 시도시 오류 발생

맞나요?


단말에 ViewServer가 실행중임을 (adb shell call window 3) 명령 응답으로 확인했구요.

그 상태에서 제가 만든 앱(Client)에서 소켓을 하나 생성하여 connect 시킬려고 했습니다. ip/port는 본문 하단에 있는대로 해서 ViewServer에게 연결 요청했구요.
그러나, 연결은 안되고 fail 되면서 ECONNREFUSED 에러를 리턴하네요.

제가 만든 동일 앱을 emulator에서 동작시켯을 때는 connect가 되더라구요.
...