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

TCP/IP 소켓 질문 입니다.

0 추천
로그인 액티비티에서 아이피 주소와 포트를 넣고 Connect이 될시 메인 액티비티로 넘어가려고 합니다.

소켓연결하는 부분을 따로 클래스로 빼두었는데, 로그인 액티비티에서 생성을하고 이제 넘어가려는데

메인액티비티에서는 어떻게 소켓을 사용해야하나요? 메인액티비티에서 생성을하면 다른 커넥션이 되서 어떻게

해야할지 모르겠네요 ㅠ
익명사용자 님이 2016년 7월 8일 질문

1개의 답변

0 추천
 
채택된 답변
기본적으로 네트워크를 메인 쓰레드에서 돌리면 오류가 발생 합니다.

쓰레드를 생성 해서 돌리셔야 합니다.

쓰레드로 소켓 컨넥션을 맺는 함수를 따로 만드시고 인터페이스를 하나 만드셔서 쓰레드를 돌리는 함수의 생성자로 받으시고 쓰레드내에 소켓 접속 부분을 작성 하신후 소켓이 접속 되었을때 인터페이스를 호출 합니다.

인터페이스 에서는 물론 접속이 되었을때 실행 되는 구현 부를 작성 하셔야 하겠죠..

예)

public interface SocketListener {
    public void onSocketConnected()

}

 

SocketListener socketlistener = new SokcetListener() {

    @Override

    public void onSocketConnected() {

         Log.d("test", "소켓이 접속됨");

         //UI 작업의 경우

        runOnUiThread(new Runnable() {

          //UI 작업

        });

    }

}

public onCreate(Bundle savedInstance) {

super.onCreate(savedInstance);

setContentView(R.layout.test)

}

 

public void ExecuteConnect(final SocketListener socketlistener) {

    new Thread(new Runnable() {

        //소켓 접속

        //소켓 접속 완료후

        socketlistener.onSocketConnected();

    });

}
익명사용자 님이 2016년 7월 8일 답변
...