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

socket IOException 에러 관련 질문올립니다.

0 추천
try {
         socket = new Socket("192.168...",9000);
         OutputStream out = socket.getOutputStream();
         out.write(string.getBytes());  

         out.close();
         socket.close();

      } catch (UnknownHostException ue) {
         Toast.makeText(this, getString(R.string.cannot_connected), 1).show();
         ue.printStackTrace();
      } catch (IOException ie) {
         Toast.makeText(this, getString(R.string.ioexception_error), 1).show();
         ie.printStackTrace();
      }

 

제가 이렇게 해서 통신하는것 까지 성공 했습니다.

pc에서 통신받는 프로그램을 켜고 string을 보내서 pc로 받는것까진 성공했는데.

에러를 보려고 프로그램을 끄고 보내봤습니다.

그런데 에러가 나긴 나는데 3~40초 뒤에

Caused by: libcore.io.ErrnoException: connect failed: ETIMEDOUT (Connection timed out) 라는 에러가 납니다 

이것을 3~40초 뒤에 에러가 뜨는것말고 바로바로 연결이안되있다고 에러가 뜨게할순 없는건가요 ?

 

socket = new Socket("192.168.11.14",9000); 여기에서 소켓을 생성하는과정중에 에러가 나는거같은데

연결이안되있으면 에러가 바로 뜨게하고싶습니다 ㅠ

 

익명사용자 님이 2015년 12월 14일 질문

1개의 답변

0 추천
 
채택된 답변
connect 메소드를 쓰세요..

 

SocketAddress socketAddress = new InetSocketAddress(IP, port);

Socket socket = new Socket();
socket.setSoTimeout(1000/* 타임 아웃 시간 ms단위 */);

socket.connect(socketAddress, 3000/* 타임 아웃 시간 ms단위 */);
익명사용자 님이 2015년 12월 14일 답변
덕분에 해결 됐습니다. 감사합니다~
...