양군의 행복한 이야기

Socket 통신 Connect timeout 줄이기 TIME_WAIT 줄이기 본문

java

Socket 통신 Connect timeout 줄이기 TIME_WAIT 줄이기

까망거북 2012. 8. 1. 16:17

일단 윈도우는 잘 모르겠고..

리눅스는 기본적인 타임 아웃이 75초 정도라한다.

그런디 접속 하다가 오류가 발생되면 20초에 타임아웃이 발생되고 끊긴다.

윈도우에서 개발 할 시는 바로 바로 체크가 되서 다시 재 접속을 시도 하면 처리되었는데

리눅스에서 20초가 걸리니 문제가 되었다.

그래서 열나게 검색 ㅡㅡ

http://www.sekuda.com/overriding_the_default_linux_kernel_20_second_tcp_socket_connect_timeout

위에 내용을 보면 보통은 75초 인데 Connet Timeout은 20초 라고 한다.

커널에서 그렇게 한다고.......


기존에 짜여 있던 모듈이 자바 1.3기준이었는지 Connect Timeout을 설정 하는 부분이 없어서 문제가 발생되었던 같다..

그리하야 TimeOut을 설정하고 모듈 배포.. 잘되어야 할텐데...


SocketAddress sadd = new InetSocketAddress(tKcpIP, nKcpPort);

Socket oConnect = new Socket();

oConnect.connect(sadd, 3*1000); // 요기 3*1000이 Connect Timeout설정 부분

oConnect.setSoLinger(true, 0);    // 요긴 소켓 종료후 time_wait 줄이는 부분

oConnect.setReuseAddress(true); // 요긴 소켓 종료후 time_wait 줄이는 부분