QUdpSocket setSockOpt
У меня есть старый код, который использует эти флаги в сокете:
unsigned char str_optval [8] = {0xfc, 0x08, 0xff, 0x33, 0xcc, 0xff, 0xaa, 0x0};
res=setsockopt(sid,SOL_IP,IP_OPTIONS, (char*)&str_optval,sizeof(str_optval));
Как я могу изменить это место, чтобы использовать QUdpSocket? Я не могу найти аналоговый setsockopt в QUdpClass. QAbstractSocket предоставляет setSocketOption, который допускает только 4 варианта флагов (enum). Мне это нужно только в версии для Linux, так что если есть какая-то нативная функция, все в порядке.
1 ответ
http://qt-project.org/doc/qt-5.0/qtnetwork/qabstractsocket.html
Опции сокетов не ограничиваются дейтаграммами UDP. Сказав это, Qt имеет только ограниченное количество опций, которые вы можете установить в сокете. Наиболее распространенные варианты на самом деле в состоянии установить. Все остальное относится к платформам.
ВНЕ: жестко запрограммированные литералы, как в вашем цитируемом коде, являются большими нет-нет. Не переносимый и кошмар в обслуживании. Что бы вы ни делали, по крайней мере измените эти литералы на имена, определенные в стандартных заголовках.