Относительное имя пути в качестве параметра подключения к имени хоста. Клиент, использующий Datasnap и Delphi XE5 при работе на устройстве Android.

В этом видео https://www.youtube.com/watch?v=vZItTDbB8cw и многие другие, можно узнать, как настроить клиент-серверную систему Datasnap внутри Delphi XE5.

Такая система работает очень хорошо, когда для параметра hostname используется IP-адрес введите здесь описание изображения:

Плохая новость заключается в том, что IP-адрес имени хоста может измениться. Вот почему мне нужно установить относительный путь к хост-серверу как HostName.

Учтите следующее: имя хоста фактически преобразуется в IP-адрес сервера, и сервер DataSnap фактически работает. Я проверил это, запустив приложение в Windows: я изменил имя хоста на относительный путь к серверу, и соединение работало хорошо.

Проблема возникает, когда я пытаюсь запустить приложение на устройстве Android: оно не распознает соединение, когда имя хоста установлено с относительным путем к машине. Что мне не хватает?


person Laureano Bonilla    schedule 27.03.2015    source источник


Ответы (1)


Когда вы имеете в виду относительный путь к машине, вы говорите о сетевом имени машины?

Если ответ «да», проблема в том, что ваше устройство Android не находится в той же подсети, что и ваш хост-компьютер. Это может работать только в том случае, если ваш хост-компьютер и ваш мобильный телефон подключены к одной и той же VPN.

В любом случае правильное решение — назначить ваш сервер какому-то домену, а затем установить это доменное имя как HostName в вашем клиентском приложении.

person SilverWarior    schedule 27.03.2015
comment
Спасибо большое. Вначале я беспокоился о том, чтобы настроить сервер на фиксированный IP-адрес, как вы рекомендуете в своем ответе, но, поговорив с моими партнерами, я узнал, что в этом случае для этого может не быть причин. - person Laureano Bonilla; 27.03.2015
comment
На самом деле я не предлагал использовать статический IP-адрес, а предлагал использовать домен. Что делает использование домена, так это то, что он позволяет вашему серверу отправлять свой IP-адрес на определенный сервер домена каждый раз, когда он изменяется. Поэтому, когда клиент пытается подключиться, он сначала запрашивает у сервера домена IP-адрес вашего собственного сервера. - person SilverWarior; 28.03.2015
comment
Чтобы в этом случае использовать домен, обязательно ли иметь VPN? Нужно ли мне менять протокол на HTTP или я могу продолжать использовать TCP/IP? - person Laureano Bonilla; 08.04.2015
comment
Нет, вам не нужно использовать VPN для использования доменов. Доменное имя может указывать на один компьютер или на шлюз всей сети, состоящей из сотен компьютеров. Как я уже огорчился, домен позволяет клиентскому компьютеру просто запросить сервер доменных имен (DNS) для получения текущего IP вашего сервера. Домены не ограничивают вас в использовании какого-либо конкретного протокола, поэтому вы можете свободно использовать TCP/IP, UDP и т. д. И, кстати, HTTP — это не отдельный сетевой протокол, а специальный протокол, построенный поверх протоколов TCP/IP. - person SilverWarior; 09.04.2015