Я бы подошел так: создать в сети «сервер», который будет запускать какое-то приложение (например, CGI-скрипт) для сбора данных (сохранять их, возможно, в базе данных), а затем разрешать удаленное устройство для запрос это.
Это означает, что каждое устройство имеет «общеизвестную службу», к которой оно подключается - потенциально «входит в систему» - и выбирает данные из.
Например, каждый «клиент» может указать свое «название судна» и местоположение GPS. Сценарий CGI на сервере просто поместит их в базу данных MySQL - в виде простой таблицы, содержащей «Имя судна» и «Местоположение».
Альтернативно, клиенты могут запрашивать и «вытягивать» GPS-местоположения для конкретного названия судна. Как простой CGI-скрипт, который будет принимать «Имя Vesel» в качестве значения и отправлять MySQL запрос в базу данных, чтобы вернуть «Местоположение». Он может отправить местоположение (и название судна) обратно в формате XML.
Клиент iPhone может использовать NSXMLParser - или даже клиент JavaScript «AJAX» может использовать собственные встроенные возможности XML-анализа для отправки запроса на одно (или несколько) судов и получения результатов.
То, что вы не хотите сделать, - это каждый клиент должен говорить напрямую с друг с другом . Это приведет к проблемам с правилами брандмауэра и приведет к путанице, когда вы попытаетесь масштабировать связь «многие ко многим».