2012-02-09 5 views
1

저는 소켓에서 tcp keep alive 패킷을 활성화하려고 시도하는 벽돌 벽을 때렸습니다.TCP_KEEPINTVL 및 TCP_KEEPCNT가 iOS SDK의 tcp.h에 정의되지 않았습니다.

#define TCP_KEEPALIVE   0x10 /* idle time used when SO_KEEPALIVE is enabled */ 

을 ...하지만 TCP_KEEPINTVL 및 TCP_KEEPCNT이 아니며, 내가 그들을 언급 아직 man 페이지를 발견하지 않았습니다 : 이것은 tcp.h 라인 (201)에 정의되어 있습니다. 이것들은 다른 곳에 정의되어 있고 아마도 다른 이름으로 지어 졌을까요? iOS 용으로 사용할 수 없나요?

+0

netinet/tcp_timer.h를 볼 수 있습니까? IOS 헤더를 사용할 수는 없지만 IOS에서 지원되지 않는 것은 가능합니다. 맨 페이지 tcp (7)는 지원되는 경우 언급 된 위치에 있어야합니다. – vipw

+0

keepcount, keepidle 및 keepintvl의 세 가지 TCP 옵션은 _per-system_ 기준으로 만 지정됩니다. 많은 시스템에서/proc에 있으며 영구적으로 /etc/sysctl.conf에 설정되어 있습니다. _per-application_ 변수로 제공하는 것은 많은 현대 데스크톱 OS가 제공하는 _extension_입니다. 나는이 확장 프로그램이 iOS에서 지원되지 않는다고 강력히 의심합니다. –

답변

1

확실히 iOS 7 및 OS X 10.9 (및 그 이전 버전)에 정의되어 있습니다.

#include <netinet/tcp.h> 

그러나 Apple dev 포럼에서 실제로 구현되지 않았 음을 알리는 게시물을 발견했습니다.