Перейти к содержанию
    

связь нескольких модемов с компьютером

Недавно организовал связь точка-точка через tcp сокет.

Теперь возникла следующая задача:

Есть 5 модемов (количество будет меняться) и компьютер с выходом в интернет.

И этот самый компьютер должен опрашивать эти модемы и передавать им команды.

 

Есть вариант такой: модемы будут скидывать файлы на ftp, а комп считывать их. Но тогда надежность системы будет зависеть от оператора и от сервера. А хочется чтоб только от оператора.

Тоже самое можно сделать через почту.

 

Можна сделать как то только через оператора, без участия почты и ftp сервера?

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


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

Есть вариант такой: модемы будут скидывать файлы на ftp, а комп считывать их. Но тогда надежность системы будет зависеть от оператора и от сервера. А хочется чтоб только от оператора.

Тоже самое можно сделать через почту.

 

Можна сделать как то только через оператора, без участия почты и ftp сервера?

 

решаю сейчас подобную задачу, пошел по пути разработки собственного протокола

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


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

...

Можна сделать как то только через оператора, без участия почты и ftp сервера?

А как вы собираетесь вообще обходится без сервера? Какой-либо сервер все равно должен быть.

Или на вашем компьютере, постоянно включенном и с реальным IP, или где-нибудь арендованный.

Модемы являются клиентами, они должны инициализировать связь.

Если вы попробуете сделать наоборот (модемы - серверы, а ваш компьютер - клиент), тогда для всех модемов придется арендовать реальные IP, а это платная услуга.

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


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

решаю сейчас подобную задачу, пошел по пути разработки собственного протокола

Можете примерно идейку сказать?

 

А как вы собираетесь вообще обходится без сервера? Какой-либо сервер все равно должен быть.

Или на вашем компьютере, постоянно включенном и с реальным IP, или где-нибудь арендованный.

Модемы являются клиентами, они должны инициализировать связь.

Если вы попробуете сделать наоборот (модемы - серверы, а ваш компьютер - клиент), тогда для всех модемов придется арендовать реальные IP, а это платная услуга.

На всех карточках у нас статические адреса (заказали услугу у оператора).

Это упростит задачу?

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


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

допустил неточность. вобщем я соединяюсь с удаленным сервером,посредством ат команд устанавливаю адрес и порт,модем відает коннект и все гут( модем настраивать в тн "transparent mode"). после того как модем соединился, шлю уже свои данные на комп порт. фактически используется PPP соединение, просто что я свои даные не пытаюсь в виде фтп или хтмл формата передавать а использую свой собственный,заранее обговоренный с программистом ,написавшим по на сервер, формат(заголовок,длина данные и тп) тут уже можно любой протокол использовать для модема и сети без разницы что передавать. что касается защиты сервера- не могу ничего порекомендовать.

 

статические айпишники-это хорошо,тогда можно модемы какк серверы конфигурироавать и опрашивать одним клиентом:)

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

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


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

На всех карточках у нас статические адреса (заказали услугу у оператора).

Это упростит задачу?

Упростит задачу или нет - зависит от ваших модемов (что они поддерживают) и от вашей задачи (какие данные и куда нужно посылать).

 

Если модем поддерживает режим TCP сервера (напр. SIM300 это умеет) или ваше ПО в железяке может это поддержать и если эти модемы должны работать только по опросу - тогда без проблем.

Модемы в режиме сервера слушают заданный порт.

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

 

Другое дело, если нужно инициировать соединение с модема, тогда такая схема в чистом виде не подойдет..

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


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

...написавшим по на сервер...

 

статические айпишники-это хорошо,тогда можно модемы какк серверы конфигурироавать и опрашивать одним клиентом:)

А что примерно представляет собой ПО на сервер? На каком языке пишется? Не знаете?

 

Опрашивать одним клиентом - это снова будет сеанс типа точка-точка?

С какими модемами вы сейчас кстати работаете? я с Telit

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


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

А что примерно представляет собой ПО на сервер? На каком языке пишется? Не знаете?

 

Опрашивать одним клиентом - это снова будет сеанс типа точка-точка?

С какими модемами вы сейчас кстати работаете? я с Telit

 

я работаю с сим300дз. по на сервер писалось на си++, в тонкостях сетевого программирования на большом брате я не разбираюсь, мне мой программист дал уже наброски протокола,какие данные он хотел бы получать на сервер, в соответствии с ним я и формировал данные в микроконтроллере. для меня вся лабуда "модем-сеть жпрс-интернет-сервер" была, вобщемто прозрачная- я подавал на ком порт модема некоторые данные и точно такие же данные получал программа-сервер. все классно,только мне не удпалось больше 1 кб\сек получить. примитивный подход,но для начала этого достаточно было.

 

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

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


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

Блин, в голове уже полная каша.

Давайте более подробно опишу ТЗ.

Есть центральный компьютер с выходом в интернет - здесь будет находиться диспетчер.

Есть клиенты, 5 модемов.

Необходимо:

1. Ра в 3 секунды опрашивать клиентов и получать от них данные (обьем одного ответа небольшой, примерно 20байт).

2. При необходимости передавать команды определенному клиенту.

 

Используемые модемы - telit gt863 со встроеным TCP/IP стеком, IP адреса статические.

 

Как писал в предыдущем посте, есть решение реализовать это через ftp сервер и почту. Как по мне это будет не совсем надежно. Хочется все это делать только через интернет.

 

 

Из языков программирования под компьютер знаю только DELPHI, и то не настолько чтоб очень.

 

Подскажите пожалуйста куда рыть чтоб сделать проще и надежней... Запутался совсем...

 

P.S. Вариант устраивать соединение по очереди с каждым модемом типа точка-точка (TCP-сервер и TCP клиент) не подходит, т.к. на это все будет тратиться много времени...

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

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


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

На мой взгляд можно организовать так:

Клиенты передают свою технологическую инфу на сервер с периодом 3 сек.

Сервер принимает пакеты, кладет в базу данных, потом по данным из базы делаются анализы,

графики, отчеты и т.п.

Никакого ftp, е-почты.

Только ТСР.

Статический адрес дать только серверу. (У нас статические адреса всем клиентам - дороговато все-таки).

У клиентов - симки любых опсосов, зависимость от опсосов следует сделать минимальной.

Хорошо бы серверу дать второй (резервный IP) другого оператора, можно даже и не сотового.

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

Для программы состороны РС дельфийский язык тоже подойдет, используйте компонент TServerSocket.

Для отладки протокола создайте тестовую прогу с TClientSocket.

Если хотите программно подключаться (отключаться, проверять подключение) к интернету пробуйте RAS библиотеку.

Ноу проблем...

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


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

Спасибо за подробное разъяснение!

Есть вопросы.

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

Грубо говоря будет соединение точка-точка. Одна точка будет постоянная - сервер (диспетчер) и к нему по ТCP поочереди будут стучаться модемы (клиенты), после обмена данными - разрыв связи и подключение следующего модема.

Я правильно все понял?

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


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

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

Грубо говоря будет соединение точка-точка. Одна точка будет постоянная - сервер (диспетчер) и к нему по ТCP поочереди будут стучаться модемы (клиенты), после обмена данными - разрыв связи и подключение следующего модема.

Я правильно все понял?

Все клиенты могут подключаться одновременно. Поскольку вы хотите период опроса 3 сек, то связь должна быть через GPRS. При этом ваши мобильные клиенты будут каждый независимо подключаться через провайдера к интернету. А поддержать на сервере 5 (50, 100) одновременных соединений не проблема.

 

На установление TCP соединения через GPRS может уйти около минуты (в плохом случае), так что только постоянный коннект...

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


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

Для программы состороны РС дельфийский язык тоже подойдет, используйте компонент TServerSocket.

Для отладки протокола создайте тестовую прогу с TClientSocket.

Можно пару вопросов по самому делфи?

И в сервере, и в клиенте, есть такое свойство, как service. Не понятно что оно означает...

Может у вас есть простенький примерчик, как отправить например текст от клиента к серверу?

Не совсем понятно...

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


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

Может у вас есть простенький примерчик, как отправить например текст от клиента к серверу?

Не совсем понятно...

Есть пара статеек на

http://www.delphimaster.ru/articles/socksrv/index.html

http://devoid.com.ua/c-builder/cppbuilder-...rogramming.html

Свойство Service можно пока не трогать. :)

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


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

Появилась следующая проблема.

На делфи делаю TCPserver.

А клиент - модем telit.

Так вот, при коннекте клиента к серверу происходит ошибка (событие OnClientError).

Хотя модемы между собой конектятся нормально!

Чем же эта ошибка может быть вызвана?

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


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

Присоединяйтесь к обсуждению

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

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...