udp - клиент для нескольких серверов - PullRequest
0 голосов
/ 05 декабря 2011

Я просмотрел много страниц и форумов, но все еще не уверен в этом. Я пишу проект, в котором клиент читает в текстовом файле чисел и отправляет числа на сервер, который сделает некоторые вычисления и отправит результат обратно клиенту. Можно ли подключить клиента к нескольким серверам с помощью udp? и если так, объяснение было бы хорошо. Я не думаю, что полностью понимаю UDP. Я пишу это также на с. Причина подключения к нескольким серверам с одного клиента состоит в том, что мне нужно запустить клиент с использованием 1, 2, 4 и 8 серверов (распределить числа по каждому серверу, пока не останется ни одного) и сравнить время выполнения. Буду признателен за любую быструю помощь.

1 Ответ

1 голос
/ 05 декабря 2011

Вы можете использовать UDP для нескольких серверов с одним сокетом. Вероятно, самый простой способ сделать это - заставить клиента назначить идентификатор сеанса каждому соединению, включить идентификатор сеанса в каждую отправляемую им дейтаграмму и заставить сервер возвращать этот идентификатор сеанса в каждой отправляемой им дейтаграмме ответа. Не используйте IP-адрес, чтобы отличить сервер от пакета, потому что сервер может иметь более одного IP-адреса, что делает его ненадежным.

Просто помните, что если вы используете UDP, вы ничего не получите от TCP. Если вам нужен какой-либо из них, вам нужно сделать их самостоятельно. Если вам нужны все или большинство из них, TCP - это намного лучший выбор. TCP делает:

  • Установление сеанса

  • Разрыв сеанса

  • Повторные

  • Передача стимуляции

  • Откат и повтор

  • Обнаружение и перегруппировка не в порядке

  • Раздвижные окна

  • Подтверждения

Если вам нужно что-то из этого и вы хотите использовать UDP, вам нужно сделать это самостоятельно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...