자바 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.}'java' 카테고리의 다른 글
| multipart/form-data 자바에서 받는 여러가지 선택지! file upload (0) | 2016.08.11 |
|---|---|
| hssf vs xssf (0) | 2016.08.10 |
| 현재 돌고 있는 threadpool 리스트 보기 (0) | 2016.07.04 |
| ehcache 캐시와 연동하기 (0) | 2016.06.15 |
| timer schedule vs scheduleAtFixedRate (0) | 2016.06.15 |