Russian Qt Forum

Qt => Работа с сетью => Тема начата: Примерный ученик от Февраль 16, 2023, 07:40



Название: [решено] Qt3 QSocket и QServerSocket привязать к конкретной сетевой карте
Отправлено: Примерный ученик от Февраль 16, 2023, 07:40
Есть две сетевые карты. Создаваемый QSocket при подключении к серверу для своей идентификации использует всегда первую карту. Как можно заставить его выступать от имени второй?
У двух QServerSocket явно при создании указываю разные карты (IP адреса). Однако занимать один номер порта не получается. Номера портов для разных карт это одни и те же ячейки памяти?
Может кто то помочь?


Название: Re: Qt3 QSocket и QServerSocket привязать к конкретной сетевой карте
Отправлено: Примерный ученик от Февраль 16, 2023, 13:53
Проверил под линукс. QServerSocket работает нормально, разные IP адреса получают один и тот же номер порта и работают параллельно. А вот как привязать к IP адресу QSocket так и не понял. Неужели никто с такой проблемой не встречался?


Название: Re: Qt3 QSocket и QServerSocket привязать к конкретной сетевой карте
Отправлено: tux от Февраль 16, 2023, 19:15
Qt3? Вы точно не ошиблись?


Название: Re: Qt3 QSocket и QServerSocket привязать к конкретной сетевой карте
Отправлено: Примерный ученик от Февраль 16, 2023, 21:55
Qt3? Вы точно не ошиблись?
нет, не ошибся. Его поддержку никто не отменил, однако.


Название: Re: Qt3 QSocket и QServerSocket привязать к конкретной сетевой карте
Отправлено: tux от Февраль 16, 2023, 22:07
нет, не ошибся. Его поддержку никто не отменил, однако.
Не отменял. Но, в чистом виде оно даже в военке уже не используется. Учитывая, что уже Qt6 достаточно стабилен.
Сомнительно, что кто-то здесь поможет.


Название: Re: Qt3 QSocket и QServerSocket привязать к конкретной сетевой карте
Отправлено: Примерный ученик от Февраль 17, 2023, 08:52
 ну а вдруг...


Название: Re: Qt3 QSocket и QServerSocket привязать к конкретной сетевой карте
Отправлено: Примерный ученик от Февраль 21, 2023, 20:31
В общем, поковырялся в исходниках QSocket, нашел место создания сокета и добавил в него bind на выбранную карту. QSocketBind принимает номер IP и номер порта, куда садиться и заработало.


Название: Re: Qt3 QSocket и QServerSocket привязать к конкретной сетевой карте
Отправлено: Примерный ученик от Февраль 21, 2023, 20:33
И под Виндой все работает


Название: Re: [решено] Qt3 QSocket и QServerSocket привязать к конкретной сетевой карте
Отправлено: tux от Февраль 21, 2023, 20:56
Сурово! :) Будет весело при передаче исходников программы кому-нибудь. В стиле: "у меня работало, проблема на твоей стороне" :D Если только кусок Qt с собой таскать...


Название: Re: [решено] Qt3 QSocket и QServerSocket привязать к конкретной сетевой карте
Отправлено: Примерный ученик от Март 17, 2023, 19:02
Всего то доработанный класс, прилагается с пояснениями и комментариями... С "чистым" QT3.3.8 взаимодействует как обычно. Не вижу криминала


Название: Re: [решено] Qt3 QSocket и QServerSocket привязать к конкретной сетевой карте
Отправлено: tux от Март 17, 2023, 21:16
Всего то доработанный класс, прилагается с пояснениями и комментариями... С "чистым" QT3.3.8 взаимодействует как обычно. Не вижу криминала
Чистого криминала и не будет. Могут быть проблемы. :)
Допустим, на машине заказчика тот же linux (в виде МСВС, как пример). И тот же мандатный доступ не даст вам править исходники Qt3 на машине заказчика. И начнётся веселуха в виде подмены класса в конкретном приложении. А в следующем заказчик забудет это сделать и начнётся великая переписка :D
Лично я бы в таком случае попробовал наследоваться от QSocket, поправить то, что нужно, а потом бы уже использовал свой новый класс.