2015-08-02 5 views
0

Heads up: Я начинающий, когда речь идет о веб-разработке и создании сетей.Общайтесь между двумя устройствами, использующими Apache Thrift

Моя цель - создать консольное приложение Windows, которое действует как сервер в локальной сети и имеет любое количество клиентов в той же сети, используя этот сервер.

Я отправился с Apache Thrift и сумел настроить консольное приложение как сервер и создал проект Unity3D, который действует как клиент. (Using this example code)

Он работает, когда я запускаю сервер и клиент на одном устройстве.

Как я могу заставить его работать, когда НЕ на том же самом деле, когда я экспортирую и создаю проект единства на iPhone?

Как я понимаю, мне нужно указать целевой IP-адрес при настройке моих клиентов, но я понятия не имею, как это сделать.

ответ

1
  1. необходимо присвоить серверу статический (закрытый) IP-адрес.
  2. заменить «localhost» на стороне клиента частным IP-адресом сервера.
  3. Если сервер и клиенты используют одну и ту же локальную сеть, в основном этого должно быть достаточно.
+0

Awesome. Я попробую это завтра. Как назначить частный IP-адрес для сервера или я могу использовать только текущий IP-адрес устройства? –

+0

Я бы не рекомендовал использовать текущий IP-адрес устройства, если сервер назначает себе ip через DHCP. для предотвращения сетевых проблем сервер должен иметь статический IP-адрес. вам необходимо настроить сетевой адаптер сервера или настроить маршрутизатор для его назначения (MAC-адрес сетевого адаптера серверов), исключенного ip-адресом. note: ip-адрес должен быть из той же подсети локальной сети ... – Jonathan

+0

Это работает как шарм. –

1

В зависимости от варианта использования другое решение может включать в себя сервер связи в качестве третьей машины.

Особенно, когда речь идет о более чем двух клиентах, этот последний подход может быть очень удобным: сервер не только берет на себя часть управления связью между различными клиентами, это также позволяет вам сделать еще более расширенную связь (подумайте о многоадресной рассылке и т. д.), если это необходимо. Peer-to-peer быстро становится болью с большим количеством клиентов.

Единственное предостережение заключается в том, что Thrift не поддерживает push-сообщения, всегда клиент должен начать взаимодействие RPC. Поэтому вам нужно будет разработать свою схему связи вокруг этого ограничения.


Сценарий описанные выше, могут не совпадать ППО использовать случай. Я хочу добавить его по двум причинам: (1) ради полноты (2) в интересах будущих читателей, которые ищут именно это.

+0

Привет, JensG, возможно, вы можете немного подробнее узнать, как создать сервер, который принимает несколько клиентских запросов? Каковы препятствия? Как создать промежуточный сервер/клиент, который управляет несколькими устройствами? Благодарю. –

+0

Основная идея заключается в том, чтобы избежать соединения между устройствами (одноранговыми узлами), вместо этого есть третий компьютер (сервер), к которому подключаются все устройства. Конечно, API-интерфейс службы зависит от того, что вы хотите сделать, поэтому нет общего правила.Плюсы: устройствам не требуется статический IP-адрес (в любом случае вы не можете обеспечить его исполнение), как указано выше, плюс несколько дополнительных накладных расходов, плюс дополнительная логика на стороне сервера. Как я уже сказал, может не соответствовать вашему конкретному делу, но есть сценарии, где этот подход имеет смысл. – JensG

+0

Спасибо. Последний вопрос: какие были бы проблемы, если бы у меня было несколько клиентов, делающих запросы с одного сервера, т. Е. Нет третьей машины? –

Смежные вопросы