QHttp и несколько IP в системе |
Здравствуйте, гость ( Вход | Регистрация )
QHttp и несколько IP в системе |
rusgl |
3.11.2008, 18:40
Сообщение
#1
|
Новичок Группа: Новичок Сообщений: 4 Регистрация: 3.11.2008 Пользователь №: 408 Спасибо сказали: 0 раз(а) Репутация: 0 |
Доброго времени, All.
Может кто сталкивался с ситуацией, когда в системе на одном сетевом интерфейсе настроенно несколько IP адресов, и программа в зависимости от некоторых обстоятельств должна посылать HTTP запросы с разных IP. Пользую QHttp, качается все нормально. Но только через 1-й IP из списка настроенных, что, в принципе правильно. Но вот как явно указать, через какой IP нужно идти в нет, не нашел. Чувствую, что копать нужно в сторону QIODevice. |
|
|
Litkevich Yuriy |
3.11.2008, 18:59
Сообщение
#2
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
|
|
|
rusgl |
3.11.2008, 19:03
Сообщение
#3
|
Новичок Группа: Новичок Сообщений: 4 Регистрация: 3.11.2008 Пользователь №: 408 Спасибо сказали: 0 раз(а) Репутация: 0 |
ifconfig_fxp0="inet 10.1.1.1 netmask 255.255.255.0"
ifconfig_fxp0_alias0="inet 10.1.1.2 netmask 255.255.255.255" ifconfig_fxp0_alias1="inet 10.1.1.3 netmask 255.255.255.255" ifconfig_fxp0_alias4="inet 202.0.75.17 netmask 255.255.255.240" ifconfig_fxp0_alias5="inet 202.0.75.18 netmask 255.255.255.255" ... http://www.freebsd.org/doc/en_US.ISO8859-1...tual-hosts.html |
|
|
Litkevich Yuriy |
3.11.2008, 19:10
Сообщение
#4
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
rusgl, пардон, я думал ты на виндовозе так изгаляешся, хоть на нем тоже такое возможно, только головников потом не оберешся.
rusgl, см. класс QNetworkInterface |
|
|
rusgl |
3.11.2008, 19:13
Сообщение
#5
|
Новичок Группа: Новичок Сообщений: 4 Регистрация: 3.11.2008 Пользователь №: 408 Спасибо сказали: 0 раз(а) Репутация: 0 |
|
|
|
Litkevich Yuriy |
3.11.2008, 19:24
Сообщение
#6
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
что-то я в некоторой растеренности, есть методы:
QIODevice * QHttp::currentSourceDevice () const QIODevice * QHttp::currentDestinationDevice () const но нет методов для установки устройств, а псевдонимы типа: ifconfig_fxp0_alias1, для Qt такие же устройства. |
|
|
ViGOur |
3.11.2008, 21:25
Сообщение
#7
|
Мастер Группа: Модератор Сообщений: 3296 Регистрация: 9.10.2007 Из: Москва Пользователь №: 4 Спасибо сказали: 231 раз(а) Репутация: 40 |
Тебе, для этого нужно сначала создать сокет на нужном тебе сетевом ip, как на qt это делается я пока не знаю, но постараюсь выяснить (если выяснишь раньше чем я, то скажи как делается ).
После чего установить его в http: int QHttp::setSocket ( QTcpSocket * socket ) p.s. осталось только найти аналог bind для tcp сокетов в Qt. bind ведь можно вызывать не только для серверной части, но и для клиентской. |
|
|
Novak |
3.11.2008, 21:55
Сообщение
#8
|
Активный участник Группа: Участник Сообщений: 319 Регистрация: 15.3.2008 Из: Замкадыш Пользователь №: 121 Спасибо сказали: 28 раз(а) Репутация: 6 |
setLocalAddress для абстрактного сокета, от которого и TCP наследует, не спасёт отца русской демократии?
Сообщение отредактировал Novak - 3.11.2008, 21:55 |
|
|
Litkevich Yuriy |
3.11.2008, 22:54
Сообщение
#9
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
Novak, я тоже такой вариант предположил, но не понятно после этого адрес сменится навсегда или только применительно к этой программе.
|
|
|
Novak |
4.11.2008, 19:26
Сообщение
#10
|
Активный участник Группа: Участник Сообщений: 319 Регистрация: 15.3.2008 Из: Замкадыш Пользователь №: 121 Спасибо сказали: 28 раз(а) Репутация: 6 |
С помощью этой функции - для конкретного сокета. Соответственно, получив информацию о всех доступных адресах, можно выбрать нужный и на нём повесить сокет.
Сообщение отредактировал Novak - 4.11.2008, 19:28 |
|
|
Текстовая версия | Сейчас: 29.11.2024, 1:10 |