|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
05.12.2016, 11:16 | #1 |
Пользователь
Регистрация: 26.06.2009
Сообщений: 43
|
Работа с UDP, таймаут для setsockopt
Доброго времни суток. Пользуюсь Windows 8.1, Visual Studio 2013, C++. Пытаюсь использовать setsockopt для установки таймаута у recvfrom, в общем проблема в том,что setsockopt возвращает -1, а печать ошибки (perror("Error"); или « std::strerror(errno)) возвращает строку "No error", и в общем таймаут не работает.
Подскажите что я делаю не так ? вот "главный" кусочек кода: Код:
Код:
|
05.12.2016, 12:02 | #2 | |
Лис
Старожил
Регистрация: 18.09.2015
Сообщений: 2,409
|
Цитата:
Для получения ошибки надо использовать WSAGetLastError. Код ошибке не кладётся в errno из за проблем с многопоточностью. SO_KEEPALIVE неприменим к SOCK_DGRAM. Так как в протоколе UDP нет понятия сессии.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
У дзен программиста программа делает то что он хотел, а не то что он написал . |
|
05.12.2016, 16:33 | #3 |
Пользователь
Регистрация: 26.06.2009
Сообщений: 43
|
Изменил на
Код:
Какой аргумент неверный в этот раз ? |
05.12.2016, 16:57 | #4 |
Лис
Старожил
Регистрация: 18.09.2015
Сообщений: 2,409
|
SOCK_DGRAM неверный, это не уровень. Нужно указывать уровень к которому применяются настройки один из этих. И параметр SO_RCVTIMEO применяется с уровнем
SOL_SOCKET Код:
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
У дзен программиста программа делает то что он хотел, а не то что он написал . Последний раз редактировалось Pavia; 05.12.2016 в 17:56. |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
таймаут idhttp get | niva622 | Работа с сетью в Delphi | 3 | 25.04.2016 09:40 |
Другое [PHP/Delphi] Работа с UDP - Заказать программу | Mik92 | Фриланс | 3 | 07.04.2015 22:59 |
Таймаут соединения. | deromik | C# (си шарп) | 0 | 19.06.2013 17:39 |
Полином для расчёта crc16 udp пакета. | ATAMAN200 | Общие вопросы C/C++ | 4 | 04.10.2010 10:00 |
Как выставить таймаут операции connect() для сокетов по закрытому порту | GanjaKyp | Работа с сетью в Delphi | 1 | 16.03.2009 21:59 |