|
связь нескольких модемов с компьютером |
|
|
|
Aug 29 2008, 07:38
|
Участник

Группа: Участник
Сообщений: 17
Регистрация: 15-07-07
Пользователь №: 29 137

|
Недавно организовал связь точка-точка через tcp сокет. Теперь возникла следующая задача: Есть 5 модемов (количество будет меняться) и компьютер с выходом в интернет. И этот самый компьютер должен опрашивать эти модемы и передавать им команды.
Есть вариант такой: модемы будут скидывать файлы на ftp, а комп считывать их. Но тогда надежность системы будет зависеть от оператора и от сервера. А хочется чтоб только от оператора. Тоже самое можно сделать через почту.
Можна сделать как то только через оператора, без участия почты и ftp сервера?
|
|
|
|
|
Aug 29 2008, 08:21
|
Участник

Группа: Свой
Сообщений: 64
Регистрация: 2-08-08
Из: Киев
Пользователь №: 39 380

|
Цитата(dimonbest @ Aug 29 2008, 10:38)  Есть вариант такой: модемы будут скидывать файлы на ftp, а комп считывать их. Но тогда надежность системы будет зависеть от оператора и от сервера. А хочется чтоб только от оператора. Тоже самое можно сделать через почту.
Можна сделать как то только через оператора, без участия почты и ftp сервера? решаю сейчас подобную задачу, пошел по пути разработки собственного протокола
--------------------
Электроника- наука о контактах: или он есть там,где не должен быть, или его нет там где он нужен
|
|
|
|
|
Aug 29 2008, 10:13
|

Просто Che
    
Группа: Свой
Сообщений: 1 567
Регистрация: 22-05-07
Из: ExUSSR
Пользователь №: 27 881

|
Цитата(dimonbest @ Aug 29 2008, 10:38)  ... Можна сделать как то только через оператора, без участия почты и ftp сервера? А как вы собираетесь вообще обходится без сервера? Какой-либо сервер все равно должен быть. Или на вашем компьютере, постоянно включенном и с реальным IP, или где-нибудь арендованный. Модемы являются клиентами, они должны инициализировать связь. Если вы попробуете сделать наоборот (модемы - серверы, а ваш компьютер - клиент), тогда для всех модемов придется арендовать реальные IP, а это платная услуга.
|
|
|
|
|
Aug 29 2008, 12:15
|
Участник

Группа: Участник
Сообщений: 17
Регистрация: 15-07-07
Пользователь №: 29 137

|
Цитата(skaarj @ Aug 29 2008, 12:21)  решаю сейчас подобную задачу, пошел по пути разработки собственного протокола Можете примерно идейку сказать? Цитата(Baser @ Aug 29 2008, 14:13)  А как вы собираетесь вообще обходится без сервера? Какой-либо сервер все равно должен быть. Или на вашем компьютере, постоянно включенном и с реальным IP, или где-нибудь арендованный. Модемы являются клиентами, они должны инициализировать связь. Если вы попробуете сделать наоборот (модемы - серверы, а ваш компьютер - клиент), тогда для всех модемов придется арендовать реальные IP, а это платная услуга. На всех карточках у нас статические адреса (заказали услугу у оператора). Это упростит задачу?
|
|
|
|
|
Aug 29 2008, 12:37
|
Участник

Группа: Свой
Сообщений: 64
Регистрация: 2-08-08
Из: Киев
Пользователь №: 39 380

|
допустил неточность. вобщем я соединяюсь с удаленным сервером,посредством ат команд устанавливаю адрес и порт,модем відает коннект и все гут( модем настраивать в тн "transparent mode"). после того как модем соединился, шлю уже свои данные на комп порт. фактически используется PPP соединение, просто что я свои даные не пытаюсь в виде фтп или хтмл формата передавать а использую свой собственный,заранее обговоренный с программистом ,написавшим по на сервер, формат(заголовок,длина данные и тп) тут уже можно любой протокол использовать для модема и сети без разницы что передавать. что касается защиты сервера- не могу ничего порекомендовать. статические айпишники-это хорошо,тогда можно модемы какк серверы конфигурироавать и опрашивать одним клиентом
Сообщение отредактировал skaarj - Aug 29 2008, 12:45
--------------------
Электроника- наука о контактах: или он есть там,где не должен быть, или его нет там где он нужен
|
|
|
|
|
Aug 29 2008, 12:50
|

Просто Che
    
Группа: Свой
Сообщений: 1 567
Регистрация: 22-05-07
Из: ExUSSR
Пользователь №: 27 881

|
Цитата(dimonbest @ Aug 29 2008, 15:15)  На всех карточках у нас статические адреса (заказали услугу у оператора). Это упростит задачу? Упростит задачу или нет - зависит от ваших модемов (что они поддерживают) и от вашей задачи (какие данные и куда нужно посылать). Если модем поддерживает режим TCP сервера (напр. SIM300 это умеет) или ваше ПО в железяке может это поддержать и если эти модемы должны работать только по опросу - тогда без проблем. Модемы в режиме сервера слушают заданный порт. Клиентская программа на компе (даже с локальным IP) - коннектится по известному IP модуля на известный порт, общается с ним и отключается. Вот и все. Другое дело, если нужно инициировать соединение с модема, тогда такая схема в чистом виде не подойдет..
|
|
|
|
|
Aug 29 2008, 12:50
|
Участник

Группа: Участник
Сообщений: 17
Регистрация: 15-07-07
Пользователь №: 29 137

|
Цитата(skaarj @ Aug 29 2008, 16:37)  ...написавшим по на сервер... статические айпишники-это хорошо,тогда можно модемы какк серверы конфигурироавать и опрашивать одним клиентом  А что примерно представляет собой ПО на сервер? На каком языке пишется? Не знаете? Опрашивать одним клиентом - это снова будет сеанс типа точка-точка? С какими модемами вы сейчас кстати работаете? я с Telit
|
|
|
|
|
Aug 29 2008, 16:37
|
Участник

Группа: Свой
Сообщений: 64
Регистрация: 2-08-08
Из: Киев
Пользователь №: 39 380

|
Цитата(dimonbest @ Aug 29 2008, 15:50)  А что примерно представляет собой ПО на сервер? На каком языке пишется? Не знаете?
Опрашивать одним клиентом - это снова будет сеанс типа точка-точка? С какими модемами вы сейчас кстати работаете? я с Telit я работаю с сим300дз. по на сервер писалось на си++, в тонкостях сетевого программирования на большом брате я не разбираюсь, мне мой программист дал уже наброски протокола,какие данные он хотел бы получать на сервер, в соответствии с ним я и формировал данные в микроконтроллере. для меня вся лабуда "модем-сеть жпрс-интернет-сервер" была, вобщемто прозрачная- я подавал на ком порт модема некоторые данные и точно такие же данные получал программа-сервер. все классно,только мне не удпалось больше 1 кб\сек получить. примитивный подход,но для начала этого достаточно было. насчет опроса клиентом кучу серверов - по ходу дела прийдется последовательно присоединяться клиентом к каждому серверу- это если по простому. а что вы хотите передавать? у меня модем-клиент при подаче питания устанавливает связь и опросить его- не проблема, этим опять таки сервер в случае необходимости заниамется
--------------------
Электроника- наука о контактах: или он есть там,где не должен быть, или его нет там где он нужен
|
|
|
|
|
Sep 2 2008, 07:12
|
Участник

Группа: Участник
Сообщений: 17
Регистрация: 15-07-07
Пользователь №: 29 137

|
Блин, в голове уже полная каша. Давайте более подробно опишу ТЗ. Есть центральный компьютер с выходом в интернет - здесь будет находиться диспетчер. Есть клиенты, 5 модемов. Необходимо: 1. Ра в 3 секунды опрашивать клиентов и получать от них данные (обьем одного ответа небольшой, примерно 20байт). 2. При необходимости передавать команды определенному клиенту.
Используемые модемы - telit gt863 со встроеным TCP/IP стеком, IP адреса статические.
Как писал в предыдущем посте, есть решение реализовать это через ftp сервер и почту. Как по мне это будет не совсем надежно. Хочется все это делать только через интернет.
Из языков программирования под компьютер знаю только DELPHI, и то не настолько чтоб очень.
Подскажите пожалуйста куда рыть чтоб сделать проще и надежней... Запутался совсем...
P.S. Вариант устраивать соединение по очереди с каждым модемом типа точка-точка (TCP-сервер и TCP клиент) не подходит, т.к. на это все будет тратиться много времени...
Сообщение отредактировал dimonbest - Sep 2 2008, 07:15
|
|
|
|
|
Sep 2 2008, 12:25
|

Участник

Группа: Участник
Сообщений: 59
Регистрация: 9-03-07
Из: USSR
Пользователь №: 26 007

|
На мой взгляд можно организовать так: Клиенты передают свою технологическую инфу на сервер с периодом 3 сек. Сервер принимает пакеты, кладет в базу данных, потом по данным из базы делаются анализы, графики, отчеты и т.п. Никакого ftp, е-почты. Только ТСР. Статический адрес дать только серверу. (У нас статические адреса всем клиентам - дороговато все-таки). У клиентов - симки любых опсосов, зависимость от опсосов следует сделать минимальной. Хорошо бы серверу дать второй (резервный IP) другого оператора, можно даже и не сотового. Если нужно передавать команды клиентам, то пожалуйста... Для программы состороны РС дельфийский язык тоже подойдет, используйте компонент TServerSocket. Для отладки протокола создайте тестовую прогу с TClientSocket. Если хотите программно подключаться (отключаться, проверять подключение) к интернету пробуйте RAS библиотеку. Ноу проблем...
|
|
|
|
|
Sep 2 2008, 12:36
|
Участник

Группа: Участник
Сообщений: 17
Регистрация: 15-07-07
Пользователь №: 29 137

|
Спасибо за подробное разъяснение! Есть вопросы. Клиенты смогут подсоединяться к серверу поочереди, я правильно понял, одновременно не смогут? Грубо говоря будет соединение точка-точка. Одна точка будет постоянная - сервер (диспетчер) и к нему по ТCP поочереди будут стучаться модемы (клиенты), после обмена данными - разрыв связи и подключение следующего модема. Я правильно все понял?
|
|
|
|
|
Sep 4 2008, 07:18
|
Участник

Группа: Участник
Сообщений: 17
Регистрация: 15-07-07
Пользователь №: 29 137

|
Цитата(million68 @ Sep 2 2008, 16:25)  Для программы состороны РС дельфийский язык тоже подойдет, используйте компонент TServerSocket. Для отладки протокола создайте тестовую прогу с TClientSocket. Можно пару вопросов по самому делфи? И в сервере, и в клиенте, есть такое свойство, как service. Не понятно что оно означает... Может у вас есть простенький примерчик, как отправить например текст от клиента к серверу? Не совсем понятно...
|
|
|
|
|
Oct 23 2008, 14:05
|
Участник

Группа: Участник
Сообщений: 17
Регистрация: 15-07-07
Пользователь №: 29 137

|
Появилась следующая проблема. На делфи делаю TCPserver. А клиент - модем telit. Так вот, при коннекте клиента к серверу происходит ошибка (событие OnClientError). Хотя модемы между собой конектятся нормально! Чем же эта ошибка может быть вызвана?
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|