자바 1.4부터 소켓통신(socket)할때 timeout을 걸어주는 메서드가 추가 되었습니다.
보통 socket.setSoTimeout()을 타임아웃 설정으로 착각할 수도 있는데
이 메서드는 소켓이 연결된후 InputStream에서 읽을때 timeout을 설정하는것이고
socket연결할때 timeout주는것은 InetSocketAddress클래스를 사용 합니다.
01.import java.io.IOException;02.import java.net.InetSocketAddress;03.import java.net.Socket;04.import java.net.SocketAddress;05.import java.net.SocketException;06. 07./**08.* 자바 소켓통신 타임아웃 테스트09.* @author kdarkdev10.* 2013. 6. 26.11.*/12.public class SocketTimeoutTest {13. 14./**15.* @param args16.*/17.public static void main(String[] args) {18.String hostname = "127.0.0.1";19.int port = 5000;20.int timeout = 3000;21.SocketAddress socketAddress = new InetSocketAddress(hostname, port);22.Socket socket = new Socket();23.try {24.socket.setSoTimeout(timeout); /* InputStream에서 데이터읽을때의 timeout */25.socket.connect(socketAddress, timeout); /* socket연결 자체에대한 timeout */26.} catch (SocketException e) {27.e.printStackTrace();28.} catch (IOException e) {29.e.printStackTrace();30.} finally {31.try {32.socket.close();33.} catch (IOException e) {34.e.printStackTrace();35.}36.}37.}38.}
출처 : http://kdarkdev.tistory.com/251
반응형
'배워야 산다 > JAVA' 카테고리의 다른 글
| RAC 접속 URL STRING (0) | 2014.11.24 |
|---|---|
| 자바 split의 효율적인 사용 (0) | 2014.03.07 |
| 자바 substring (0) | 2014.03.07 |
| 자바설치, 이클립스 설정 2/2 (0) | 2012.02.06 |
| 자바설치, 이클립스 설정 1/2 (0) | 2012.02.06 |