Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / C++ [игнор отключен] [закрыт для гостей] / Вопрос по сокетам в си / 6 сообщений из 6, страница 1 из 1
14.01.2016, 08:25
    #39146939
r1111
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по сокетам в си
Добрый день.
Использую сокеты в программе для приема данных использую recv. Если данных долго нет то программа может долго ждать приёма данных. Можно ли как-то, чтобы recv ждал не до прихода данных, закрытия соединения, а какое-то определенное время, скажем 10 или 60 секунд, а потом даже если не получил данные выполнять дальше программу?
...
Рейтинг: 0 / 0
14.01.2016, 08:31
    #39146941
Dima T
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по сокетам в си
используй select() для ожидания
...
Рейтинг: 0 / 0
14.01.2016, 09:22
    #39146961
roma1975
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по сокетам в си
А если select использовать recv будет ждать заданное время?
...
Рейтинг: 0 / 0
14.01.2016, 09:33
    #39146967
Dima T
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по сокетам в си
select() проверяет есть ли что в сокете для чтения, также ждет заданное время пока в сокете что-нибудь не появится.
Гугли примеры использования. Тут неплохо описано http://masandilov.ru/network/guide_to_network_programming7#7.2
...
Рейтинг: 0 / 0
14.01.2016, 09:42
    #39146980
Dima T
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по сокетам в си
Можешь еще попробовать задать таймаут для recv
Код: plaintext
1.
2.
3.
4.
int wait_read = 10000; // 10 сек
if (setsockopt(my_sock, SOL_SOCKET, SO_RCVTIMEO, (char *) &wait_read, sizeof(wait_read)) != 0 ) {
	printf("setsockopt SO_RCVTIMEO failed\n");
}


задать достаточно один раз, после открытия сокета.
my_sock это твой сокет.

Ни разу не пользовался, но раз есть в хэлпе , значит должно работать.

PS Лучше с select() разберись
...
Рейтинг: 0 / 0
14.01.2016, 12:39
    #39147198
r1111
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по сокетам в си
Хорошо спасибо. Попробую с select() разобраться.
...
Рейтинг: 0 / 0
Форумы / C++ [игнор отключен] [закрыт для гостей] / Вопрос по сокетам в си / 6 сообщений из 6, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]