카테고리 없음

Client Socket에서 connect 시에 timeout 설정하기

좋은느낌/원철 2011. 5. 6. 15:44

출처 : http://sewony.tistory.com/entry/Client-Socket%EC%97%90%EC%84%9C-connect-%EC%8B%9C%EC%97%90-timeout-%EC%84%A4%EC%A0%95%ED%95%98%EA%B8%B0

일반적으로 Client Socket 작성시에 다음과 같은 코드를 사용하게 되는데,

Socket s = new Socket("192.168.0.2", "9000"); // ipaddress, port

Socket을 생성하는 시점에 해당 ip와 port로 접속을 하게 된다.
따라서 다음과 같이 생성이후에 timeout을 설정하는 것은 아무 의미가 없다.

Socket s = new Socket("192.168.0.2", "9000"); // ipaddress, port
s.setSoTimeout(5000);

그러므로, connection timeout 값을 설정하려면 다음과 같이 사용해야 한다.

                Socket s = new Socket();
                SocketAddress addr = new InetSocketAddress("192.168.0.2", "9000");
                s.connect(addr, 5000); // 5 seconds timeout