Activity.java 

 public class SocketTestActivity extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        
        Thread sThread = new Thread(new TCPServer());
        Thread cThread = new Thread(new TCPClient());
        
        sThread.start();
        
        try{
         Thread.sleep(1000);         
        }catch(InterruptedException e){}
        
        cThread.start();
    }
}

Server.java 

 

 public class TCPServer implements Runnable{
 String TCP = "TCP_test";
 //public static final String SERVERIP="192.168.7.33";
 public static final String SERVERIP="192.168.7.1";
 
 public static final int SERVERPORT=4444;
 
 public void run(){
  
  try{
   Log.d(TCP, "S : Connecting...");   
   ServerSocket sSocket = new ServerSocket(SERVERPORT);
   
   while(true){
    Socket client = sSocket.accept();
    Log.d(TCP, "S : Receiving...");
    
    try{
     BufferedReader in = new BufferedReader(new
      InputStreamReader(client.getInputStream()));
     
     String str = in.readLine();
     Log.d(TCP, "S : Received : "+str+"'");     
    }catch(Exception e){
     Log.d(TCP, "S : Error", e);
    }finally{
     client.close();
     Log.d(TCP, "S : Done.");
    }
   }
  }catch(Exception e){
   Log.d(TCP, "S : Error", e);
  }
 }
}


 

Client.java

 

 public class TCPClient implements Runnable{
 String TCP = "TCP_test";
 //EditText msg = (EditText)findViewById(R.id.msg);
 //final Button sendBtn = (Button)findViewById(R.id.sendServer);
 
 @Override
 public void run() {
  
  try{
   InetAddress serverAddr = InetAddress.getByName(TCPServer.SERVERIP);
   Log.d(TCP, "C : Connecting...");
   Socket sock = new Socket(serverAddr, TCPServer.SERVERPORT);
   Log.d(TCP, "C : Socket Init...");
   //String message = msg.toString();
   String message = "Hello from Client";
   while(true){
    try{
     Log.d(TCP, "C : Sending '"+message+"'");
     PrintWriter out = new PrintWriter(new BufferedWriter(
       new OutputStreamWriter(sock.getOutputStream())), true);
     
     out.println(message);
     Log.d(TCP, "C : Sent.");
     Log.d(TCP, "C : Done.");
    }catch(Exception e){
     Log.e(TCP, "S : Error1", e);
    }finally{
     sock.close();
    }
   }
  }catch(Exception e){
   Log.e(TCP, "C : Error2",e);
  } 
   }
}

인터넷에 있는 소켓 예제를 그대로 복사해왔구요

Manifest파일에 INTENT퍼미션도 줬어요.

IP주소두 ipconfig 해서 나온 IP로 넣어줬구욤........

그런데 실행해보면 로그가

 

S : Connecting

C : Connecting

이렇게 두개만 뜨고 가만 멈춰있다가 클라이언트쪽에서 에러가 발생합니다...

흑흑 해결법 아시는분 ㅜㅜ

 

 

 

 

 

로그캣이에요

09-20 11:23:09.262: ERROR/TCP_test(4388): C : Error2
09-20 11:23:09.262: ERROR/TCP_test(4388): java.net.SocketException: The operation timed out
09-20 11:23:09.262: ERROR/TCP_test(4388):     at org.apache.harmony.luni.platform.OSNetworkSystem.connectStreamWithTimeoutSocketImpl(Native Method)
09-20 11:23:09.262: ERROR/TCP_test(4388):     at org.apache.harmony.luni.platform.OSNetworkSystem.connect(OSNetworkSystem.java:115)
09-20 11:23:09.262: ERROR/TCP_test(4388):     at org.apache.harmony.luni.net.PlainSocketImpl.connect(PlainSocketImpl.java:244)
09-20 11:23:09.262: ERROR/TCP_test(4388):     at org.apache.harmony.luni.net.PlainSocketImpl.connect(PlainSocketImpl.java:219)
09-20 11:23:09.262: ERROR/TCP_test(4388):     at java.net.Socket.startupSocket(Socket.java:781)
09-20 11:23:09.262: ERROR/TCP_test(4388):     at java.net.Socket.<init>(Socket.java:316)
09-20 11:23:09.262: ERROR/TCP_test(4388):     at com.SocketTest.TCPClient.run(TCPClient.java:24)
09-20 11:23:09.262: ERROR/TCP_test(4388):     at java.lang.Thread.run(Thread.java:1096)