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)




SocketException: The operation timed out
에 대한 예외 처리를 말씀하시는건지 서버와 통신이 되게 만들어 달라고 하시는건지 궁금하네요..
일단 서버가 살아 있는지 ping 체크부터...