tcp socket keepalive setting

SOCKET에 대한 keep alive option 주기.
tcp 영역에서 알아서 해주는데, 로직상에서 타임아웃을 걸어 끊고있다면 의미없음.
OS마다 지원여부가 다르므로 확인 후 사용 필요.

  int s;
  int optval;
  int optlen = sizeof(optval);
  /* Set the option active */
  optval = 1;
  optlen = sizeof(optval);
  if(setsockopt(sock, SOL_SOCKET, SO_KEEPALIVE, (char*)&optval, optlen) < 0) {
 perror("setsockopt()");
 LOG(TAG, "WEBSOCKET keep alive option fail.");
  }
  /* Check the status again */
  if(getsockopt(sock, SOL_SOCKET, SO_KEEPALIVE, (char*)&optval, &optlen) < 0) {
 LOG(TAG, "WEBSOCKET keep alive option fail.");
 perror("getsockopt()");
  }
  LOG(TAG, "WEBSOCKET KEEPALIVE is %s\n", (optval ? "ON" : "OFF"));

댓글

이 블로그의 인기 게시물

remove bluebirds.exe , virtual drive

4,5,6 띠 저항의 색띠를 읽는 법(띠저항 값)

수지에서 인천공항 리무진 버스 (인천공항버스정보)(2022년3월업데이트)