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

안드로이드 웹서버구현중 소켓 80번

0 추천

자바로 네트워크 공부중입니다. 

내컴퓨터에 서버를 돌려서 클라이언트도 내컴으로 접속을 하니 감흥이 없어서 

안드로이드 폰을 서버로 돌려가면서 실습 중입니다. 

http웹서버 구현중에 안되는 부분이 발견되어서 질문합니다 먼저 구현해보신 선배님들이 있으리라 믿습니다. 

네트워크 구조에는 OSI 7계층으로 이루어져 있고 그중 7계층에 속하는 애플리 케이션 프로토콜이 있답니다. 

TELNET, FT, POP3, IMAP, SMTP, HTTP, FINGER, NNTP 등  제가보는 책엔 이렇게 나와있네요.

여기서 질문은 http 프로토콜의 경우 포트 80번이 사용이 되는데  80번으로는 소켓이 생성이 안됩니다. ㅠ.ㅠ  

대신 이셉션이 발생합니다. 

내용은 아래와 같구요. 

 

02-26 12:02:32.430: I/System.out(3038): java.net.BindException: bind failed: EACCES (Permission denied)
 
퍼미션이 뭔가 빠진거 같은데 혹시 아시는분 계신가요?
 

   <uses-permission android:name="android.permission.INTERNET"/>

    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>

    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />

 

이렇게 설정되어있습니다. 

참고로 포트 번호를 10001정도로 예약안된걸로 설정하고 브라우저에서 접속해보면 접속이 잘됩니다. 

대신 주소창에 포트번호를 입력해줘야해서 뭔가 어설퍼 보입니다. 

 

외국인이 만든 서버 받아서 테스트 해봤는데요 이 서버도 -_- 포트번호 눌러줘야 그쪽으로 접속이 되네요.. 음 안되는걸까요 이건~@@ 

천연기념물 (180 포인트) 님이 2013년 2월 26일 질문
천연기념물님이 2013년 2월 26일 수정

1개의 답변

+1 추천
리눅스 계열의 운영체제에서 1024 아래의 포트를 사용하려면 루트 권한이 필요한것으로 알고있습니다.

루팅을 통해 루트권한을 얻어서 설정하지 않으면 퍼미션에러는 계속 날 것 같습니다.

 

안드로이드의 문제가 아닌 리눅스 계열의 문제로 보시면 될것 같습니다.
이라슈 (8,770 포인트) 님이 2013년 2월 26일 답변
루팅을 하지 않고는 안되는 문제군요.. 전 루팅이 두려워서 못하겠습니다.
감사합니다.
...