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

안드로이드 socket 통신부분 질문이요 ㅠㅠ(3일내내 이러고있네요 ㅠㅠ)

0 추천

막힌 소스 부분 은  이러한데요..

public class AndroidTCPActivity extends Activity
{
 
 private void showMsg(String msg)
 {
  Toast.makeText(this, msg, Toast.LENGTH_SHORT).show();
 }
 
 private String return_msg;
    private static final String serverIP = "192.168.0.40";
    private static final int serverPort= 5555;
    private Socket socket;
   
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
       
        final EditText et = (EditText)findViewById(R.id.editText1);
        Button btn = (Button)findViewById(R.id.button1); //TCP접속 버튼
        Button ctlButton2 = (Button)findViewById(R.id.button2); //데이터 전송 버튼
        Button ctlButton3 = (Button)findViewById(R.id.button3); //데이터 수신 부분.
        final TextView tv = (TextView)findViewById(R.id.textView1);
       

        btn.setOnClickListener(new OnClickListener(){ //TCP 접속 버튼
         public void onClick(View v){
             try
             {   
             
                 InetAddress serverAddr = InetAddress.getByName(serverIP);       
                 socket = new Socket(serverAddr, serverPort);
                 tv.setText("접속성공");
             }
             catch (Exception e)
             {
              showMsg("연결오류... 왜이러지.. ");
             }
         }
        });

       
        ctlButton3.setOnClickListener(new OnClickListener()
        { //데이터 수신 부분
            public void onClick(View v)
            {
             
             try
             {
              BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
              if(in != null)
              {
               return_msg = in.readLine();
               tv.setText(return_msg);
              }
             } catch(Exception e)
             {
              
              tv.setText("Error");
             }
            }
           });        
    }//End OnCreate
    private class TCPclient implements Runnable
    {
            private String msg;

            public TCPclient(String _msg){
             this.msg = _msg;
            }
            @Override
            public void run()
            {
             try
             {
              BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
                    return_msg = in.readLine();

             } catch(Exception e)
             {
                           Log.e("TCP", "C: Error1", e);
                }
            }
           
     }   

}

 

제가 어려워하는부분은 수신쪽입니다  이 소스랑 사용하는것은 바로 네이버 카페에서 mfc프로그램을 제공해주어서

 

 

이런것을 사용하고있는데요..

 

수신쪽을 보면 버튼을 누른순간 값을 읽어와 화면에 뿌려주는겁니다..

 

그런데 저는 여기서 해당 mfc프로그램에서 send로 보내준순간에 대한 명령을 만들어주고싶은데요..

 

이것에 대한 callback(?) 을 어떻게 받아줘야할지 모르겠습니다 ㅠㅠ.

 

요점은.. send로 15를 쓴 순간 바로 안드로이드 화면에 수신버튼을 누르지않고 바로 15라는것이 출력되게 보고싶습니다..

 

능력자님들. 작은조언도 감사히 받겠습니다.. 이거로 벌써 3일이 넘어갔습니다 .. 좀 도와주셔요 ..


 

익명사용자 님이 2013년 11월 18일 질문

1개의 답변

0 추천
자체 해결했습니다.

 

쓰레드가 답이더군요..

 

허허.. 공부좀 더해야겠습니다..
백돈 (220 포인트) 님이 2013년 11월 19일 답변
mfc쪽 코드도 님이 짜신건가요??
혹시 서버 클라이언트 둘다 코드좀 받아볼수있을까요 ㅠㅠ?
...