R.is Опубликовано 27 июля, 2015 Поделиться Опубликовано 27 июля, 2015 Добрый день господа нужна ваша помощь как отправить содержимое Edit-а на сервер? Edit находится в устройстве Android а в качестве сервера может выступить любой приложение на компе и оба они находятся в разных сетях подскажите как реализовать это? Цитата Ссылка на комментарий
0 kami Опубликовано 27 июля, 2015 Поделиться Опубликовано 27 июля, 2015 (изменено) В первую очередь определитесь, в каком виде сервер хочет получить содержимое вашего Edit. И хочет ли вообще. Есть как минимум два варианта отправки (по http(s)) - метод GET и метод POST. Anyway - до сервера должна быть возможность достучаться. В общем случае - сервер должен иметь белый статический IP. Если используется только локалка (пусть даже и с разными подсетями) - тут проще. Берете Indy, десктопное приложение будет выступать сервером (idHTTPServer), а мобильное приложение - клиентом (idHTTPClient). Клиент отправляет данные через idHTTPClient1.Get|Post, а сервер в событии приема данных ловит это и обрабатывает. Изменено 27 июля, 2015 пользователем kami krapotkin и Brovin Yaroslav 2 Цитата Ссылка на комментарий
0 kami Опубликовано 27 июля, 2015 Поделиться Опубликовано 27 июля, 2015 Кстати, если "приложение на компе" планируется запускать исключительно под Windows, я бы посоветовал остаться на VCL и задействовать mormot-фреймворк, он работает с http-драйвером Windows и я за все время его эксплуатации ни разу не встречал проблем (в отличие от Indy и ICS). Brovin Yaroslav 1 Цитата Ссылка на комментарий
0 R.is Опубликовано 27 июля, 2015 Автор Поделиться Опубликовано 27 июля, 2015 В первую очередь определитесь, в каком виде сервер хочет получить содержимое вашего Edit. И хочет ли вообще. Есть как минимум два варианта отправки (по http(s)) - метод GET и метод POST. Anyway - до сервера должна быть возможность достучаться. В общем случае - сервер должен иметь белый статический IP. Если используется только локалка (пусть даже и с разными подсетями) - тут проще. Берете Indy, десктопное приложение будет выступать сервером (idHTTPServer), а мобильное приложение - клиентом (idHTTPClient). Клиент отправляет данные через idHTTPClient1.Get|Post, а сервер в событии приема данных ловит это и обрабатывает. ну задумка такая в Edit записываются GPS координаты устройства (каждую минуту новые координаты) и надо их отправить на комп чтобы можно было знать где находится устройство только вот не знаю как реализовать Цитата Ссылка на комментарий
0 R.is Опубликовано 27 июля, 2015 Автор Поделиться Опубликовано 27 июля, 2015 пробовал с сокетами но они у меня почему то не хотели в разных сетях работать да андроид не поддерживает сокеты Цитата Ссылка на комментарий
0 R.is Опубликовано 27 июля, 2015 Автор Поделиться Опубликовано 27 июля, 2015 это моё первое клиент серверное приложение и я пока не очень то разобрался народ помогите Цитата Ссылка на комментарий
0 kami Опубликовано 27 июля, 2015 Поделиться Опубликовано 27 июля, 2015 (изменено) Исходя из того, что вам посоветовали взять за основу сетевого обмена Indy, а вы пытаетесь что-то сделать (судя по всему) на TClient/TServerSocket, т.е. игнорируете сказанное вам - чем сообщество может помочь? И кстати, "сокеты", если имеются ввиду idTCPClient/ServerSocket работают на Android, насколько я знаю. Изменено 27 июля, 2015 пользователем kami Цитата Ссылка на комментарий
0 krapotkin Опубликовано 27 июля, 2015 Поделиться Опубликовано 27 июля, 2015 см. пост №2 клиент-серверное приложение требует сервер. сервер есть у вас? на клиенте будет всего 5 строк h:=TIDHTTP.Create(nil); try h.get('http://www.myserver.com/mypath/myfile.html?edit1=xxx&edit2=yyy'); finally h.free; end; а сервер можно писать на PHP, Delphi, ASP, JS и еще 100500 вариантов Цитата Ссылка на комментарий
0 R.is Опубликовано 27 июля, 2015 Автор Поделиться Опубликовано 27 июля, 2015 нет сервера пока нет и я даже не знаю как его создать Цитата Ссылка на комментарий
0 krapotkin Опубликовано 27 июля, 2015 Поделиться Опубликовано 27 июля, 2015 тема "как отправить содержимое Edit-а на сервер" вроде исчерпана как отправить, разобрались теперь разбирайтесь, где будет ваш сервер, и на какой платформе его писать Цитата Ссылка на комментарий
0 Vitaldj Опубликовано 27 июля, 2015 Поделиться Опубликовано 27 июля, 2015 Согласен с предыдущим оратором про: см. пост №2. Если речь идет не про локалку, а то Интернет, то это тоже просто. Покупай (арендуй) хост и виртуальный сервер (на VPS), мой на infobox. Есть кучу других. Регистрируй доменной имя и привязывай. если на серваке белый ip, может и не регистрировать доменное имя, но если поменяешь сервак, а приложение привязано к нему (к ip), то нужно будет перекомпилировать. Поэтому правильнее с доменным именем. далее организыешь как угодно прием. Я обычно поднимаю обычный web сервер и принимаю по php и вставляю в базу данных. Ну на стороне сервера, допиливаешь клиент и достаешь данные. Можно сайт, можно нативно. И далее дело техники.... Цитата Ссылка на комментарий
0 R.is Опубликовано 27 июля, 2015 Автор Поделиться Опубликовано 27 июля, 2015 дааааааа все гораздо сложнее чем я думал Цитата Ссылка на комментарий
0 Vitaldj Опубликовано 27 июля, 2015 Поделиться Опубликовано 27 июля, 2015 дааааааа все гораздо сложнее чем я думал Не так страшен черт, как его малюют. Не все там уж и страшно))) Цитата Ссылка на комментарий
0 krapotkin Опубликовано 27 июля, 2015 Поделиться Опубликовано 27 июля, 2015 согласен, и конкретная задача решается очень просто сложности наступят при заведении аккаунтов, введении логинов паролей и другой безопасности просто передать строку на сервер и, например, записать ее в файл - те же 5 строк на сервере )) Цитата Ссылка на комментарий
0 R.is Опубликовано 27 июля, 2015 Автор Поделиться Опубликовано 27 июля, 2015 спасибо вам за ответы просто весь офис надеется на меня у нас социологическая организация и мы проводим разные исследовании вопросники программируются в планшетах (в специальной программе CSPro) их около 500 шт и нужно отслеживать их чтобы они проводили интервью именно с нужным человеком и в нужном месте а не заполняли сами есть много приложении для этого но у всех есть свои минусы и вот решил сотворить что то своё но пока никаких результатов буду очень благодарен если кто нибудь объяснит все пошагово или даст ссылку которая поможет Цитата Ссылка на комментарий
0 krapotkin Опубликовано 27 июля, 2015 Поделиться Опубликовано 27 июля, 2015 тогда вам нужно точно и полно сформулировать задачу вместо "послать edit на сервер" что дальше будет с этими данными? как будете распространять ваше приложение? сколько копий приложения будет работать? разовая работа или постоянная? срок исполнения? в общем, чем подробнее, тем лучше тогда получите нормальный развернутый ответ если я даже приведу вам тут код сервера на PHP который записывает эти данные куда-то, думаю, это не поможет Цитата Ссылка на комментарий
0 sviat9440 Опубликовано 27 июля, 2015 Поделиться Опубликовано 27 июля, 2015 попробуй hostinger.ru для начала. Я написал сервак на php, и все пашет на простых гет запросах. Сделал клиент на делфи, и на телеграмм роботе (python). ФТП пытался раньше сделать, но если у кого медленный интернет, но можно екнуться пока будеш ждать установки соединения. А время отправки гет запросов, на самом медленном соединении не превышает 3-5 сек. Могу привести код на php сервера, который будет принимать и обрабатывать данные гет запроса. Но мой совет: учи php. лишним не будет. Цитата Ссылка на комментарий
0 R.is Опубликовано 27 июля, 2015 Автор Поделиться Опубликовано 27 июля, 2015 в общем задача такая есть приложение firemonkey показывает GPS координаты устройства Android (бнвляется допустим каждый 5 мин) и мне надо получать их на комп неважно как это будет главное получить чтобы на компе были координаты там там дальше вставлю их как нибудь в google maps чтобы следить в режиме реально времени Цитата Ссылка на комментарий
0 sviat9440 Опубликовано 27 июля, 2015 Поделиться Опубликовано 27 июля, 2015 На компе не будет если пользоваться моим способом. Будет например в txt файле на сервере, к которому ты сможеш подключиться по фтп и смотреть... Цитата Ссылка на комментарий
0 kami Опубликовано 27 июля, 2015 Поделиться Опубликовано 27 июля, 2015 Подразделяем задачу. Устройство ведь будет не одно, так? Соответственно, необходимо (простейший путь, но не совсем правильный) помимо координат передавать на сервер еще и какой-нибудь идентификатор, по которому сервер сможет однозначно определить - кто прислал ему координаты. Итого, получаем: 1. Клиентское приложение, содержащее idHTTPClient. По таймеру отправляется GET-запрос с параметрами: идентификатор, Latitude, Longitude. Пример привел krapotkin в посте №8. 2. Сервер, до которого можно достучаться из интернета. Предыдущая компания, в которой я работал, не заморачивалась с доменными именами. Купили белый IP и на своем роутере настроили переадресацию портов: этот порт - на этот компьютер, этот - на другой (или тот же). В любом случае, самое главное условие - до сервера должна быть возможность достучаться "извне". Как это будет сделано - вопрос к системному администратору вашей компании, это его головная боль. 3. Десктопное приложение, которое будет отображать данные на карте. При дальнейшем совершенствовании вы захотите отображать историю (трек движения), применять различные фильтры и т.п. Поэтому лучше сразу разграничить: серверу-серверное, клиенту-клиентское. Алгоритмы простые: для клиента в принципе, уже все описано в п.1 для сервера. Он должен содержать какой-либо компонент, работающий с http. Для обеспечения совместимости разработки - пусть это будет idHTTPServer (хотя я предпочел бы mormot). В Design-time прописываете ему нужный порт, а на событие приема вешаете свой обработчик. Этот обработчик: "выдергивает" из полученного GET-запроса переданные идентификатор, широту и долготу, пишет их (желательно в базу, а не текстовый файл - данных будет ОЧЕНЬ много, вы ведь потом захотите к примеру построить трек движения устройства...). десктопный клиент. Пусть он также общается с сервером по http. Бросаете на сервер второй idHTTPServer, назначаете ему другой порт и событие приема. Десктопный клиент (на начальном этапе) будет отправлять только один запрос - "дай мне текущие координаты и имена всех активных устройств". Пусть это будет тоже GET-запрос, без параметров. Сервер в ответ на этот запрос шерстит базу, выдергивает последние данные активных устройств, запихивает их в xml / json / protobuffer / etc. и отправляет десктопному клиенту. Десктопный клиент, получив эти данные, парсит их и запихивает на карту. Самое сложное здесь (с точки зрения более-менее опытного программиста) - видимость сервера. Но, как я и говорил - это забота сисадмина (если он у вас есть). Вроде, все расписал. Остаются только под-задачи: как получить координаты, что писать в обработчиках на сервере, как и где хранить на сервере данные, как их выбрать и куда запихнуть, чтобы отдать десктопному приложению, как распарсить данные на десктопном клиенте и запихнуть их на карту. Цитата Ссылка на комментарий
0 R.is Опубликовано 28 июля, 2015 Автор Поделиться Опубликовано 28 июля, 2015 спасибо за вашу помощь да и как вы сказали плашетов много в одном проекте будут участвовать около 25-30 и идентификатор обязателен я думаю что этот вопрос можно решить тем что при отправки координат отправить и google аккаунт планшета Цитата Ссылка на комментарий
0 R.is Опубликовано 28 июля, 2015 Автор Поделиться Опубликовано 28 июля, 2015 думаю мне надо первым делом разобраться с сервером как и где его создать потому что эта часть для меня самая трудная Цитата Ссылка на комментарий
0 AndreyS Опубликовано 28 июля, 2015 Поделиться Опубликовано 28 июля, 2015 (изменено) Я не совсем понимаю, зачем так заморачиваться с видимостью компа извне. По мне - проще так: 1. Зарегисть доменное имя + подключить хостинг (у любого хостинг-провайдера) 2. Подключить базу данных (пусть будет MySQL, т. к. есть у большинства провайдеров). Добавить одну таблицу - (ИдПланшета, Широта, долгота, временнАя метка) 3. На любом языке (пусть будет php, как один из простейших) написать 2 сценария. а) Первый - получает GET - параметры, что посылает планшет и тупо добавляет их в таблицу. б) Второй - делает 1 запрос к базе данных, где выбирает последние точки каждого планшета, компонует их в json и выдает их. 4. На планшеты поставить программу (предварительно ее написав))), которая каждые 3 минуты берет свои координаты + Ид и делает запрос к 1-му сценарию. 5. На комп поставить программу (тоже написав), которая каждую минуту делает запрос ко второму сценарию, разбирает полученный json и уже распоряжается координатами как хочет. А еще желательно при отправке с планшета данных о координатах в GET-запрос добавить еще один параметр, типа md5 из координат и ид, а на сервере проверять это. Чтобы хоть как-то обезопаситься. Изменено 28 июля, 2015 пользователем AndreyS Цитата Ссылка на комментарий
0 sviat9440 Опубликовано 29 июля, 2015 Поделиться Опубликовано 29 июля, 2015 TTethering в помощь. Здесь где-то была инструкция по использованию и конкретные примеры... Цитата Ссылка на комментарий
0 kami Опубликовано 29 июля, 2015 Поделиться Опубликовано 29 июля, 2015 TTethering в помощь. Здесь где-то была инструкция по использованию и конкретные примеры... Разве Tethering работает через интернет? Емнип, он способен обнаруживать "коллег" и подключаться только в одной подсети. Andrey Efimov 1 Цитата Ссылка на комментарий
0 sviat9440 Опубликовано 29 июля, 2015 Поделиться Опубликовано 29 июля, 2015 ничего не знаю за него, но там есть выбор: интернет, или блютуз. на разных устройствах не пробовал, но писали про него что он служит для связи устройств. и для чего тогда эти два режима связи? Цитата Ссылка на комментарий
Вопрос
R.is
Добрый день господа нужна ваша помощь
как отправить содержимое Edit-а на сервер? Edit находится в устройстве Android а в качестве сервера может выступить любой приложение на компе и оба они находятся в разных сетях
подскажите как реализовать это?
Ссылка на комментарий
28 ответов на этот вопрос
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.