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

안드로이드 소켓 통신 연결 오류

0 추천

    java.net.ConnectException: failed to connect to localhost/127.0.0.1 (port 9097): connect failed: ECONNREFUSED (Connection refused)
            at libcore.io.IoBridge.connect(IoBridge.java:124)
            at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:183)
            at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:163)
            at java.net.Socket.startupSocket(Socket.java:590)
            at java.net.Socket.tryAllAddresses(Socket.java:128)
            at java.net.Socket.<init>(Socket.java:178)
            at java.net.Socket.<init>(Socket.java:150)
            at com.example.user.ssodam3step.SsodamClientRunner.initNetService(SsodamClientRunner.java:69)
            at com.example.user.ssodam3step.SsodamClientRunner.run(SsodamClientRunner.java:83)
     Caused by: android.system.ErrnoException: connect failed: ECONNREFUSED (Connection refused)
            at libcore.io.Posix.connect(Native Method)
            at libcore.io.BlockGuardOs.connect(BlockGuardOs.java:111)
            at libcore.io.IoBridge.connectErrno(IoBridge.java:137)
            at libcore.io.IoBridge.connect(IoBridge.java:122)
            at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:183)
            at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:163)
            at java.net.Socket.startupSocket(Socket.java:590)
            at java.net.Socket.tryAllAddresses(Socket.java:128)
            at java.net.Socket.<init>(Socket.java:178)
            at java.net.Socket.<init>(Socket.java:150)
            at com.example.user.ssodam3step.SsodamClientRunner.initNetService(SsodamClientRunner.java:69)
            at com.example.user.ssodam3step.SsodamClientRunner.run(SsodamClientRunner.java:83)

안녕하세요

 

응용 개발자인데 이번에 안드로이드로 입문한지 일주일 정도 되어갑니다.

 

기본강좌 3일만에 기초과정 동영상으로 52강정도 다 듣고 따라하고 (헉헉헉;;;)

 

메신저 비스무리한 거 개발하는데

 

이눔이 소켓 동신으로 커넥션을 맺을라고 할때 에러를 뱉어 냅니다 ㅠㅠㅠㅠ

 

에러 구문은 별거 없습니다. 보시는 것 처럼

 

해서 설정 문제이구나 미친 듯이

 

토끼눈이 되다 싶이 구글링 시작 !!!!!

 

구글링한제 3일 다 되어가는 데 해결을 못햇습니다 흐규흐규

 

방법으로 제시해준 것은

 

첫번째는

AndroidManifest.xml에 use-permission에 internet을 추가하라는 거 였고

 

두번째는

로컬 어드레스 변경이었습니다.

 

둘다 해봤는데

 

ㅇ안되네요 ㅠㅠㅠ 도와주세요

 

ㅎ혹시나 답변 받을 수 있을가봐 질의 해봅니다.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

광부 (120 포인트) 님이 2015년 2월 4일 질문

3개의 답변

0 추천

127.0.0.1 은 자기자신(폰)인데요..

서버의 IP 설정을 어떻게 했는지요?

nicehee (73,100 포인트) 님이 2015년 2월 4일 답변
저희가 아는 127.0.0.1은 통상 pc기준으로 로컬호스트이나
안드로이드는 아니어서 10.0.0.2로 해봤구요
내부 아이피로도 접근해봤구 모두 안돼네요
0 추천
서버의 IP주소를 바꿔보세요.

스마트폰에서 돌리던  AVD에서 돌리던.. IP주소를 127.0.0.1로 하게되면, 자기자신이 되어버려서 안됩니다.

뭔말이냐면, 일반적으로 자바로 서버 클라이언트 작성하고 한컴퓨터에서 테스트를 하면

IP주소를 127.0.0.1 을 써도 됩니다. 클라이언트와 서버의 ip가 같으니까요.

 

그런데 안드로이드는 서버와 클라이언트의 IP가 다릅니다. avd에서 돌려도 ip가 다르구여. 폰은 당연히 다르구엽

그러니, cmd 들어가셔서 ipconfig 로 server가 실행되는 컴퓨터의 ip확인 하시고, 앱 ip 바꾸세영

 

아마 wifi로 할때.. 같은공유기 밑에 컴퓨터랑 폰을 둬야 연결이 될껍니다. 폰을 3G 나 LTE로 할때는..

서버 컴퓨터의 네트워크 구성상태에 따라 안될수도 있어요.
아시리 (8,400 포인트) 님이 2015년 2월 4일 답변
안드로이드 스튜디오 애뮬환경이구요 studio버전은 1.0.2입니다.
ip port
내부주소 192.168.0.2
안드리오드환경 로컬주소 10.0.0.2

다 안됩니다.

텔넷 됩니다.
다른 소켓 클라이언트에서 접속 테스트 해봤는데
됩니다.

안드로이드만 위와 같은 에러 나오고 안됩니다.

미치 겄네요 ㅠㅠ
내부IP라.. 공유기에 연결된 PC의 ip를 말씀하시는거죠..?
구성에따라 접근이 안될수도 있어요. 확실하게 하기 위해.. 에뮬환경이 아닌
실제 디바이스에 어플 올리고 와이파이 연결해서 한번 해보시길..
0 추천

안드로이드 시뮬레이션 포트가 막혀있어서 그래요.
adb reverse tcp:5672 tcp:5672  
명령어를 실행하면 로컬 테스트 가능합니다.

시니카미 님이 2017년 5월 22일 답변
이 코드는 어디에 넣나요??
adb 라는 실행 파일이 깔립니다. 안드로이드 깔때.
명령 프롬프트 에서 adb.exe 가 있는 폴더로 가서 실행 하십시요
...