• 0
Akromd

Поиск сервера

Вопрос

Добрый вечер.

Только начал изучать технологию Datasnap. Разобрался с простейшим сервером и клиентом, находясь в одной сети все прекрасно работает.

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

Теперь вопрос, как послать такой пакет? Если кто то может подсказать где почитать про это и посмотреть примеры, буду очень признателен.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

31 ответ на этот вопрос

  • 0
9 часов назад, Akromd сказал:

Однако первоначальная идея что устройства соединяются не в одной подсети.

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

1 час назад, Zawuza сказал:

два клиента не могут соединиться друг с другом, даже если они сервера, потому что сети разные

Если мы говорим про сетевые технологии, то клиентский сокет может соединиться только с серверным. И тут два варианта:

1. либо они оба находятся в одной подсети, при этом порт для броадкаста открыт.

2. Либо у сервера выделенный статический белый IP или постоянный URL (в этом случае IP не обязан быть статическим, но вот белым быть обязан).

 

Серверный сокет не соединяется ни с кем, он только принимает входящие подключения от клиентских сокетов.

 

1 час назад, Zawuza сказал:

сервер получает пакеты одного клиента и просто перебрасывает их второму

да.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
  • 0
21 час назад, Zawuza сказал:

К сожалению, два клиента не могут соединиться друг с другом...

Думаю вы не поняли, попробую по-другому.  На каждом компе установите программы клиента и сервера. Каждый сервер будет слушать запросы других клиентов и скидывать им данные клиента, установленного на этом же компе.

Изменено пользователем GASCHE

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
  • 0

в вашем случае, раз все будут серверы и клиенты, то получается, что все данные клиентов будут на КАЖДОМ клиенте!

Вам надо так? кто будет собирать данные воедино?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
  • 0

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

Изменено пользователем GASCHE

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
  • 0

Bittorrent - в эту сторону

P2P тогда уж

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
  • 0
В 07.01.2017 в 22:42, krapotkin сказал:

ничего не понял

что не так с датаснапом?

сервер кладется на форму вроде как обычно, не?

 

Да, именно так, только некоторые компоненты datasnap server не компилируются под андройд.

Для того, чтобы понятно было, что я хочу, прилагаю простой проект для примера с датаснапом.

В проекте сервер и клиент. Сервер достаточно запустить, а клиент по каждому нажатию "Получить id" эмулирует подключение нескольких клиентов, что приводит к вычислению некой суммы от каждого клиента.

А возвращаясь к задаче, хочется чтобы все вычисления были у клиента.

Проверка сервера.zip

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Создайте аккаунт или войдите для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!


Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.


Войти сейчас

  • Похожие публикации

    • Автор: FREEFAR
      Доброе время суток всем!
      Очень нужна помощь профессионалов, любителей и тех кто просто имеет опыт в этом деле. Пишу приложение под платформу Android и возникла потребность загружать фото на сервер приложений с устройств.  Все построено  на Datasnap.
      на клиенте    
      ImageStream := TMemoryStream.Create; image1.Bitmap.SaveToStream(ImageStream); FileName := taskf.TASKNUMBER+'_'+AnsiReplaceStr(AnsiReplaceStr(datetimetostr(now),'.',''),':',''); Bytes := ClientModule1.ServerMethods1Client.UploadImage(FileName,ImageStream); при вызове функции загрузки падает: no mapping for the unicode character exists
      Что интересно : если делать по http все проходит 
      только переключаю  на https не работает...
      А в требованиях СИБ сами знаете....
      Если кто знает в чем секрет, помогите пжл.
      Какая инфа нужна будет - предоставлю. 
      Заранее сорян за косоязычность - первый пост как никак
       
    • Автор: beklexx
      Здравствуйте товарищи.
      Помогите выявить одну проблему, а то уже не знаю как с этим бороться, странно что даже гугл не помогает.
      В общем есть несколько клиентов на андроиде, так вот они изредка перестают цепляться к datasnap серверу. Причём не все сразу, к примеру один отвалился а другие норм работают.

      Решается только методом полного сброса смартфона и закачки клиента обратно.
      Как я понял это происходит если ставят какой либо другой софт на смартфон, кодировка или ещё что изменяется.
      Как это выявить я так и не допёр, есть какое мнение?
      Заранее благодарю.
  • Сейчас на странице   0 пользователей

    Нет пользователей, просматривающих эту страницу