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

안드로이드 소켓 통신 질문

0 추천

리모컨 어플을 만들기 위해서 자바 프로젝트로 서버를 만들고

안드로이드 프로젝트로 클라이언트를 만드는 중인데요

소켓통신이 된 후 다른 작업을 하고 있엇는데 갑자기 소켓 통신이 안되네요. 

고수님들 좀 봐주세요...

 

<Server.java> 입니다

import java.io.ObjectInputStream;
import java.net.InetAddress;
import java.net.ServerSocket;
import java.net.Socket;
 
public class Server {
       public static void main(String[] args) 
       {
             ServerSocket serverSocket;
             int port = 5001;
          
             try {

                    System.out.println("소켓 생성 중....");
                    serverSocket = new ServerSocket(port);
                    System.out.println("접속 포트 : " + port + "");
                    
                    while(true){
                           Socket sock = serverSocket.accept();
                           InetAddress clientHost = sock.getLocalAddress();
                           
                           int clientPort = sock.getPort();
                           System.out.println("Client host : " + clientHost + ", "
                           		+ "port : " + clientPort);
                           
                           ObjectInputStream in = 
                        		   new ObjectInputStream(sock.getInputStream());
                           Object obj = in.readObject();
                           System.out.println("Input : " + obj);
                                                                               
                           sock.close();
                    }
             } catch (Exception e) {
                    e.printStackTrace();
             }
       }
}

 

<Client.java> 입니다

package com.example.client;

import java.io.ObjectOutputStream;
import java.net.Socket;

import android.annotation.SuppressLint;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
 
@SuppressLint("NewApi")
public class Client extends Activity {

		int port = 5001;
 
		EditText ipText;
		Button connectBtn;
		Button button_alertDialog;
       
		@Override
		protected void onCreate(Bundle savedInstanceState) 
		{
			super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
             
            ipText = (EditText)findViewById(R.id.ipText);
            connectBtn = (Button)findViewById(R.id.connectBtn);
            
            button_alertDialog = (Button) findViewById(R.id.connectBtn);

            connectBtn.setOnClickListener(new View.OnClickListener() 
            {
            	@Override
            	public void onClick(View arg0) 
                {
            		SocketClient client = new SocketClient(ipText.getText().toString());
            		client.start();            		
  
            		/*
                    AlertDialog.Builder builder = new AlertDialog.Builder(Client.this);
                    builder.setTitle("Connection pass");
                    builder.setMessage("서버에 접속하였습니다.\n OK 버튼을 누르면 컨트롤러로 이동합니다.");
                    
                    builder.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
                        @Override
                        public void onClick(DialogInterface dialog, int which) 
                        {
                        	finish();
                        }
                    });
                    
                    builder.setPositiveButton("OK", new DialogInterface.OnClickListener() {
                        @Override
                        public void onClick(DialogInterface dialog, int which) 
                        {
                        	Intent intent = new Intent(Client.this, Controller.class);
                        	startActivity(intent);
                        }
                    });
                    builder.show();
                    */   		
            	}
            });
       }
		
       public class SocketClient extends Thread {
    	   String ip;
             
    	   public SocketClient(String ip){
    		   this.ip = ip;
    		   }

    	   @Override
           public void run() 
           {
    		   Socket socket = null;
    		   
    		   try {
    			   socket = new Socket(ip, port);

    			   ObjectOutputStream out =
    					   new ObjectOutputStream(socket.getOutputStream());
    			   out.writeObject("To Android..");
    			   out.flush();
                           
    			   socket.close();
    			   
    		   } catch (Exception e) {
    			   e.printStackTrace();
    			   }
    		   }
    	   }
       }

주석 부분은 제가 지금 코딩하고있는 작업 이구요

 

소켓통신이 되면 자바 서버 콘솔 부분에

소켓 생성 중....
접속 포트 : 5001
Client  host  : [ip 주소] , port : [포트 번호]
Input : To Android...
 
이렇게 4줄이 나와야 정상인데
 
연결이 안되니까 
 
소켓 생성 중....
접속 포트 : 5001
 
이렇게 밖에 안나와요..... 대체 뭐가 잘못인지 소스좀 고쳐주세요

 

익명사용자 님이 2013년 10월 18일 질문
로그 보시고 문제점을 먼저 파악하셔야 합니다.

1개의 답변

0 추천
왜요?............
바야바 (3,840 포인트) 님이 2013년 10월 18일 답변
...