tcp keepalive 설정을 했는데 잘 되지 않아요....
글쓴이: lsh7708 / 작성시간: 목, 2010/06/17 - 4:16오후
안녕하세요
지금 보드가 서버랑 tcp 로 연결해서 주고 받는데 보드의 랜이 갑자기 빠졌을 경우
서버에서 연결 상태를 확인할려고 socket option 에서 keepalive 를 사용을 했는데 적용이 잘 안되는데요
client의 랜을 뽑으면 50초 후에 서버에서 연결이 끊어졌다고 나와야 되는데 계속 연결 된 상태로 나옵니다.
그런데 여기서 client의 랜을 다시 연결 하면 끊어질걸로 나오는데 왜 이러는지 잘 모르겠는데
혹씨 아시는분 있나요 ?
아래와 같이 설정했습니다.
소스 상에서
================================
int optval = 1; // enable KeepAlive
int optlen = sizeof(optval);
SOCKLEN_T len;
if (setsockopt(socket, SOL_SOCKET, SO_KEEPALIVE, &optval, optlen) < 0) {
printf("KeepAlive Set Error \r\n");
}
================================
커맨드에서 아래와 같이 적용
sysctl -w net.ipv4.tcp_keepalive_intvl=10
sysctl -w net.ipv4.tcp_keepalive_probes=2
sysctl -w net.ipv4.tcp_keepalive_time=30
Forums:
댓글 달기