Я настраиваю опцию сокета следующим образом:
struct timeval tv;
tv.tv_sec = 0;
tv.tv_usec = 0;
if (setsockopt(sockfd, SOL_SOCKET, SO_RCVTIMEO, &tv, sizeof(tv)) == -1) {
perror("setsockopt");
exit(1);
}
Когда я делаю это, сокет блокируется навсегда при вызове recv, но когда я устанавливаю tv_usec в 1, тайм-аут сокета, как и ожидалось. Это ожидаемое поведение? Любая помощь в понимании этого будет принята.