@alexey_abramov

Как эффективно тестировать клиент-серверные приложения написанные на Qt на одной машине?

Здравствуйте.
Создаю клиент-серверное приложение на Qt, обмен идет через TCP. Онлайн игра.
Все данные посылаются на QTcpSocket подключившихся клиентов.
Собственно говоря, если запускать приложение 2 раза на одном компьютере, чтобы протестировать 2 клиента, данные будут посылаться лишь в 1 клиентское приложение. Т.к. QTcpSocket одинаковый.
Возможно ли запускать приложения, не используя виртуальные машины, чтобы у 2 приложений значение QTcpSocket было разное? Через какую-то настройку винды/линукса(особо нет разницы на чем тестировать, лишь бы на 1 компьютере)? А то слишком временно затратно делать по другому.
  • Вопрос задан
  • 884 просмотра
Решения вопроса 1
обмен идет через UDP

QTcpSocket

Непонятно, что из этого выбрать.

Не совсем понял смысл выражения "значение QTcpSocket", но с точки зрения протокола IP, операционная система при стандартном способе привязки сокетов будет иденфтицировать сокет (и соответствующее приложение) по паре (IP адрес; порт). Если вы все-таки используете UDP и соответствующий тип сокетов, то вы так или иначе решаете задачу подключения нескольких клиентов к серверу (в случае TCP это делал бы для вас QTcpServer). В зависимости от выбранной вами модели управления, клиенты либо используют фиксированный UDP порт и посылают дейтаграммы с некоторого IP-адреса и этого порта, сюда же ожидая ответ от сервера, либо выбирают случайный свободный UDP-порт.
В первом случае сложно называть клиентов "клиентами", т.к. они также висят на фиксированном порту и с точки зрения сети равноправны с сервером. Чтобы протестировать этот случай, можете попробовать добавить дополнительные IP-адреса вашей машине, и привязываться разными "клиентами" на разные адреса, чтобы пара (адрес, порт) была уникальной.
А во втором случае проблем быть не должно, если порт выбирается случайным образом.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
26 апр. 2024, в 07:20
2000 руб./за проект
26 апр. 2024, в 06:46
1000 руб./в час
26 апр. 2024, в 05:31
1000 руб./за проект