![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() ![]() |
![]() |
borune |
![]()
Сообщение
#1
|
Участник ![]() ![]() Группа: Участник Сообщений: 152 Регистрация: 1.1.2011 Пользователь №: 2314 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
Ребят, добрый день!
Имеется задача организовать тестирование сети на потери пакетов. Процесс тестирования осуществляется одновременным обменом сообщениями между всеми узлами сети с использованием QTcpSocket. Каждый узел должен фиксировать статистику, т.е. иметь две таблицы, в первой указывается что и кому он отправил, во второй - что и от кого он получил. Как отправлять пакеты понятно - создаем потоки, в каждом потоке создаем сокет, подключаемся к целевому узлу (его адрес известен), и начинаем слать пакеты. А вот с чтением не очень понятно. Если у узла один сетевой интерфейс, то все более-менее ясно - запускаем сервер, ждем входящего подключения, при его наличии создаем сокет и читаем из него данные. А вот если у узла несколько сетевых интерфейсов, как в этом случае быть? Может я что-то упустил из документации, но у QTcpServer'a вроде бы нет параметра, указывающего на каком адресе он запускается. Он что, сразу все подключения ко всем интерфейсам перехватывает? |
|
|
Trisch |
![]()
Сообщение
#2
|
![]() Активный участник ![]() ![]() ![]() Группа: Участник Сообщений: 379 Регистрация: 30.1.2012 Из: Запорожье Пользователь №: 3169 Спасибо сказали: 24 раз(а) Репутация: ![]() ![]() ![]() |
А что несколько сетевых интерфейсов имеют один адрес?
|
|
|
borune |
![]()
Сообщение
#3
|
Участник ![]() ![]() Группа: Участник Сообщений: 152 Регистрация: 1.1.2011 Пользователь №: 2314 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
|
|
|
Yuriy |
![]()
Сообщение
#4
|
Новичок Группа: Новичок Сообщений: 7 Регистрация: 8.10.2013 Пользователь №: 3949 Спасибо сказали: 1 раз(а) Репутация: ![]() ![]() ![]() |
А вот если у узла несколько сетевых интерфейсов, как в этом случае быть? Может я что-то упустил из документации, но у QTcpServer'a вроде бы нет параметра, указывающего на каком адресе он запускается. Он что, сразу все подключения ко всем интерфейсам перехватывает? Упустили: bool QTcpServer::listen ( const QHostAddress & address = QHostAddress::Any, quint16 port = 0 ) Tells the server to listen for incoming connections on address address and port port. If port is 0, a port is chosen automatically. If address is QHostAddress::Any, the server will listen on all network interfaces. |
|
|
borune |
![]()
Сообщение
#5
|
Участник ![]() ![]() Группа: Участник Сообщений: 152 Регистрация: 1.1.2011 Пользователь №: 2314 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
А вот если у узла несколько сетевых интерфейсов, как в этом случае быть? Может я что-то упустил из документации, но у QTcpServer'a вроде бы нет параметра, указывающего на каком адресе он запускается. Он что, сразу все подключения ко всем интерфейсам перехватывает? Упустили: bool QTcpServer::listen ( const QHostAddress & address = QHostAddress::Any, quint16 port = 0 ) Tells the server to listen for incoming connections on address address and port port. If port is 0, a port is chosen automatically. If address is QHostAddress::Any, the server will listen on all network interfaces. Да, спасибо, прочел невнимательно. |
|
|
![]() ![]() ![]() |
![]() |
|
Текстовая версия | Сейчас: 2.5.2025, 18:47 |