タイムアウトとTTLでpingを実行したい。Apple のコード ( "Simple Ping" ) を使用しています。「iOS ping with timeout」と読みました 。コードを変更します:
CFSocketNativeHandle sock = CFSocketGetNative(self->_socket);
struct timeval tv;
tv.tv_sec = 0;
tv.tv_usec = 100000; // 0.1 sec
setsockopt(sock, SOL_SOCKET, SO_SNDTIMEO, (void *)&tv, sizeof(tv));
bytesSent = sendto(
sock,
[packet bytes],
[packet length],
0,
(struct sockaddr *) [self.hostAddress bytes],
(socklen_t) [self.hostAddress length]
);
しかし、パケット受信のタイムアウトを表示するコードをどこに置くべきかわかりません。また、TTL (time-to-live) 情報を使用して ping を実行する必要があります。このパターンに基づいて情報を取得したい:icmp_seq=count from=ip_address ttl=value_of_ttl time=value_of_replytime_ms