Russian Qt Forum
Ноябрь 22, 2024, 13:33 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Как привязать выдающий TcpSocket к одной из двух СВОИХ сетевых карт  (Прочитано 4136 раз)
BISS
Новичок

Offline Offline

Сообщений: 4


Просмотр профиля
« : Июль 07, 2019, 16:38 »

Нужно передавать данные через TCP-сокет (как клиент) через разные (свои) сетевые карты ( у каждой свой IP) в Qt. Возможно, setLocalAddress
Пробовала вызвать protected метод setLocalAddress для QTcpSocket. Он вроде наследует QAbstractSocket, но метод просто вызвать не получается, компилятор не
пропускает. Может, неправильно вызываю, подскажите кто знает. Пробовала еще сделать bind(...)  перед connectToHost, возвращает true, но данные в сокет не выдаются, он становится на прием - и все. Если делать bind()  после connectToHost, возвращает false и выдача выполняется не через тот IP, что был задан в bind(). Отзовитесь,знатоки!!!
Записан
qate
Супер
******
Offline Offline

Сообщений: 1177


Просмотр профиля
« Ответ #1 : Июль 08, 2019, 10:02 »

https://doc.qt.io/qt-5/qabstractsocket.html#bind
For TCP sockets, this function may be used to specify which interface to use for an outgoing connection, which is useful in case of multiple network interfaces.
Записан
zhbr
Гость
« Ответ #2 : Июль 08, 2019, 11:56 »

но данные в сокет не выдаются
что значит не выдаются? сервер не получает? может быть проблема в маршрутизации?

Если делать bind()  после connectToHost, возвращает false и выдача выполняется не через тот IP, что был задан в bind().
помоему после установки соединения нельзя поменять ни адрес, ни порт...

опишите детальнее - список интерфейсов, адреса и маски на них, таблицу маршрутизации, адрес сервера к которому подключаетесь.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.043 секунд. Запросов: 22.