Russian Qt Forum

Qt => Общие вопросы => Тема начата: BISS от Июль 05, 2019, 12:19



Название: Работа сетевыми картами
Отправлено: BISS от Июль 05, 2019, 12:19
1) Нужно принимать даные по UDP на две различные сетевые карты. Как вызвать pritected метод setLocalAddress(...)? Или е сть другое решение?
2) Нужно передавать данные через TCP-сокет (как клиент) тожечерез разные (свои) сетевые карты. Возможно, тоже setLocalAddress ???


Название: Re: Работа сетевыми картами
Отправлено: Old от Июль 05, 2019, 12:21
Вам нужно использовать метод bind:
bool   bind(const QHostAddress &address, quint16 port = 0, QAbstractSocket::BindMode mode = DefaultForPlatform)

address должен соответствовать ip адресу на нужном интерфейсе.


Название: Re: Работа сетевыми картами
Отправлено: BISS от Июль 06, 2019, 16:21
Спасибо, но bind() работает для приема по UDP, а если я делаю bind для TCP-сокета, через который хочу выдавать данные в TCP-сервер, мой ТСР-сокет данные не выдает, такое впечатление, что он стал на прием, а мне это не нужно, нужно ВЫДАТЬ данные.


Название: Re: Работа сетевыми картами
Отправлено: BISS от Июль 06, 2019, 17:58
Напишите, пожалуйста, как вызвать protected метод setLocalAddress для QTcpSocket? Он вроде наследует QAbstractSocket, но метод просто вызвать не получается