|
|
  |
Передача данных между 2 GPRS модемами, Уважаемые, помогите. Нужна прога на С++, которая реализует передачу да |
|
|
|
Jul 24 2006, 04:58
|
Участник

Группа: Участник
Сообщений: 68
Регистрация: 24-07-06
Пользователь №: 19 039

|
Уважаемые, помогите. Нужна прога на С++, которая реализует передачу данных (восновном текстовых) между 2 GPRS модемами от одного компа к другому. Интерфейс модемов с компами -RS-232. Может кто-то сталкивался с такой проблемой? Есть исходники? Заранее, Спасибо.
|
|
|
|
|
Jul 24 2006, 06:11
|
Участник

Группа: Участник
Сообщений: 68
Регистрация: 24-07-06
Пользователь №: 19 039

|
Тип GPRS модема - WAVECOM FASTRACK
|
|
|
|
|
Jul 24 2006, 07:17
|

Профессионал
    
Группа: Свой
Сообщений: 1 195
Регистрация: 26-07-05
Из: Санкт-Петербург
Пользователь №: 7 111

|
Ну, во-первых понятно желание перед самостоятельным решением задачи посмотреть на творения колегг. Я бы, наверное, тоже сделал такую попытку. Во-вторых, человек спрашивает о возможности передачи. Если я не ошибаюсь реализовать это можно не только через GPRS, но и через CSD. Передавать планируется тексты, т. е. обьём передачи не велик, поэтому и CSD может подойти. Про выгодность - это зависит от тарифов оператора в зоне, где будут работать модемы. У некоторых, например, звонки внутри сети очень дешевые или есть дешевые внутрисетевые безлимитки, т. е. можно подумать о CSD - там ведь вроде оплата идет за время, а не за обьем данных.
|
|
|
|
|
Jul 24 2006, 07:41
|

Профессионал
    
Группа: Свой
Сообщений: 1 301
Регистрация: 30-11-04
Из: Россия, Н.Новгород
Пользователь №: 1 264

|
Цитата(san822 @ Jul 24 2006, 11:17)  Ну, во-первых понятно желание перед самостоятельным решением задачи посмотреть на творения колегг. Я бы, наверное, тоже сделал такую попытку. ... Несколько не так... Вопрос был задан именно: Цитата(Yuriy_Rus @ Jul 24 2006, 08:58)  ... Нужна прога на С++, которая реализует передачу данных (восновном текстовых) между 2 GPRS модемами от одного компа к другому... Обычно интересующийся человек спрашивает, как это сделать. И мы ему помогаем. А здесь сразу же дайте прогу... Открытых проектов по данной тематике очень мало, т.к. многие реализации в основном комерческие поскольку рынок изобилует спросом на эти услуги, и ничего странного, что здесь существует нормальная конкуренция. Тем более, что у нас есть форум посвещенный данным проблемам, а здесь "Общение - Free talks" - ни к чему не обязывает... Так что ничего личного, а просто выравнивание курса в 'нужное русло'...
--------------------
Не корысти ради, не в целях наживы, а во исполнение велений души!
|
|
|
|
|
Jul 24 2006, 08:13
|
Участник

Группа: Участник
Сообщений: 68
Регистрация: 24-07-06
Пользователь №: 19 039

|
to BVU - к словам цепляться не стоит. Попросил помочь. А тут уже и "кнопки нажимать не охота".
А по делу, кто небудь может подсказать пути решения моей проблемы.
|
|
|
|
|
Jul 24 2006, 09:09
|

Местный
  
Группа: Свой
Сообщений: 361
Регистрация: 18-04-05
Пользователь №: 4 258

|
Цитата(Yuriy_Rus @ Jul 24 2006, 08:58)  Уважаемые, помогите. Нужна прога на С++, которая реализует передачу данных (восновном текстовых) между 2 GPRS модемами от одного компа к другому. Интерфейс модемов с компами -RS-232. Может кто-то сталкивался с такой проблемой? Есть исходники? Заранее, Спасибо. Если не ошибаюсь то обычный GPRS модем общается с PC чем-то вроде PPP или SLIP протоколом т.е. tcp/ip over PPP over RS-232. Кроме того в модеме может быть реализован в разной степени стек TCP/IP, и работа с портом (RS-232) ведется на уровне "последовательный порт" <-каким-то образом-> tcp/ip порт.
|
|
|
|
|
Jul 24 2006, 13:17
|
Участник

Группа: Участник
Сообщений: 68
Регистрация: 24-07-06
Пользователь №: 19 039

|
Будет использоваться сервер. Задача прог для каждого модема организовыать запросы на базовую станцию оператора моб. связи. Затем сообщать адресс модема на сервер(вторая прога в это время будет делать то же самое для другого модема). Затем организовывать запрос на сервер за IP другого модема (то же самое происходит на другом компе). Когда проги будут знать IP противоположных модемов "начнёться веселье". Какими средствами С++ реализовать всё вышеизложенное?
|
|
|
|
|
Jul 24 2006, 13:20
|

Местный
  
Группа: Свой
Сообщений: 361
Регистрация: 18-04-05
Пользователь №: 4 258

|
Цитата(Rst7 @ Jul 24 2006, 16:04)  Цитата(Chupakabra @ Jul 24 2006, 14:44)  Цитата(Rst7 @ Jul 24 2006, 15:06)  Через GPRS нельзя организовать соединение точка-точка, так что только CSD
На транспортном и канальном уровнях модели OSI нельзя, на уровене приложений можно Т.е. точка-точка может быть организована на уровне IP адрес:порт <-> IP адрес:порт. Как вы себе видите узнавание IP-адреса другого модема? Через какой-либо специально организованный сервер в инете? Выделение IP ведь динамическое... Ну это уже расширение условий задачи. А вообще, да, нахаляву например www.dyndns.com/ или www.changeip.com, или платные сервисы - понадежней. Можно даже свой DNS на выделенном сервере организовать.
|
|
|
|
|
Jul 24 2006, 13:26
|
Участник

Группа: Участник
Сообщений: 68
Регистрация: 24-07-06
Пользователь №: 19 039

|
to Chupakabra Правильно мыслишь. Однако разговор идёт, а дело стоит.
(Пока. До завтра.)
|
|
|
|
|
Jul 25 2006, 05:20
|
Участник

Группа: Участник
Сообщений: 68
Регистрация: 24-07-06
Пользователь №: 19 039

|
Цитата(GetSmart @ Jul 24 2006, 17:37)  После получения обоими модемами динамических IP-адресов нужно обменяться ими. Я бы предложил быстренько на пару секунд законнектиться через обычное модемное соединение, пускай даже по аналоговому каналу 9600 передать эти "циферки", а потом уже общаться через IP-адреса. Нужно только знать номера обоих телефонов. Благо GPRS позволяет одновременно "разговаривать" по телефону. Нет, тут весь смысл в том что есть два компа, два GPRS модема и передачу данных нужно организовывать без всяких (кроме сервера, кот. принимает и выдаёт IP) вспомогательных средств. Обычное модемное соединение использоваться не будет.
|
|
|
|
|
Jul 25 2006, 08:28
|

Йа моск ;)
     
Группа: Модераторы
Сообщений: 4 345
Регистрация: 7-07-05
Из: Kharkiv-city
Пользователь №: 6 610

|
Цитата(GetSmart @ Jul 25 2006, 11:10)  Цитата(Yuriy_Rus) Нет, тут весь смысл в том что есть два компа, два GPRS модема и передачу данных нужно организовывать без всяких (кроме сервера, кот. принимает и выдаёт IP) вспомогательных средств. Обычное модемное соединение использоваться не будет. Я имел ввиду модемное соединение через этот же GPRS-модем, только по аналоговому каналу. Я точно не знаю, но может быть именно оно называется CSD. Короче, кроме двух GPRS модемов ничего дополнительно не надо. И этот вариант гораздо лучше передачи двух СМС-ок. Да и быстрее. Одной SMS, одной! От сервера клиенту. Этого хватит.
--------------------
"Практика выше (теоретического) познания, ибо она имеет не только достоинство всеобщности, но и непосредственной действительности." - В.И. Ленин
|
|
|
|
|
Jul 25 2006, 09:38
|
Участник

Группа: Участник
Сообщений: 68
Регистрация: 24-07-06
Пользователь №: 19 039

|
Цитата(Rst7 @ Jul 25 2006, 12:28)  Цитата(GetSmart @ Jul 25 2006, 11:10)  Цитата(Yuriy_Rus) Нет, тут весь смысл в том что есть два компа, два GPRS модема и передачу данных нужно организовывать без всяких (кроме сервера, кот. принимает и выдаёт IP) вспомогательных средств. Обычное модемное соединение использоваться не будет. Я имел ввиду модемное соединение через этот же GPRS-модем, только по аналоговому каналу. Я точно не знаю, но может быть именно оно называется CSD. Короче, кроме двух GPRS модемов ничего дополнительно не надо. И этот вариант гораздо лучше передачи двух СМС-ок. Да и быстрее. Одной SMS, одной! От сервера клиенту. Этого хватит. Сначала модем посылает свой динамический IP серверу. Затем принимает IP другого. Всё то же самое делает и другой модем. Как всё это делается одной SMS!? Или я чего-то неправильно понял? Я в GPRS модемах плоховато шарю.
|
|
|
|
|
Jul 25 2006, 13:07
|
Участник

Группа: Участник
Сообщений: 68
Регистрация: 24-07-06
Пользователь №: 19 039

|
Цитата(GetSmart @ Jul 25 2006, 15:50)  Передаётся одной СМС один IP. Модем, получивший его посылает туда IP-пакет. Таким образом другой модем (сервер) получает IP-адрес клиента.
Но вариант с СМС неидеален. Как я уже говорил. Что-то то ли я не понимаю, то ли ты... Что ты подразумеваешь под "ТУДА"? Как один модем может стать сервером, а другой клиентом? Сервер он на то и нужен, что IP у него постоянный. А у GPRS модема IP выдаются каждый раз новый при подключении. Т.е. модемы не могут общаться между собой сразу, т. к. каждый раз они не будут знать свои адреса. Задача сервера - обменять модемы адресами.
|
|
|
|
|
Jul 25 2006, 13:44
|

Йа моск ;)
     
Группа: Модераторы
Сообщений: 4 345
Регистрация: 7-07-05
Из: Kharkiv-city
Пользователь №: 6 610

|
Цитата(Yuriy_Rus @ Jul 25 2006, 16:07)  Цитата(GetSmart @ Jul 25 2006, 15:50)  Передаётся одной СМС один IP. Модем, получивший его посылает туда IP-пакет. Таким образом другой модем (сервер) получает IP-адрес клиента.
Но вариант с СМС неидеален. Как я уже говорил.
Что-то то ли я не понимаю, то ли ты... Что ты подразумеваешь под "ТУДА"? Как один модем может стать сервером, а другой клиентом? Сервер он на то и нужен, что IP у него постоянный. А у GPRS модема IP выдаются каждый раз новый при подключении. Т.е. модемы не могут общаться между собой сразу, т. к. каждый раз они не будут знать свои адреса. Задача сервера - обменять модемы адресами. Протокол TCP/IP подразумевает, что на одной стороне создается серверный сокет (ожидающий соединение), а на другой стороне клиентский (который является инициатором коннекта). После того, как поднялся PPP и вы в своей софтине создаете серверный сокет, становится известен его IP, который достаточно послать клиенту, чтобы тот выполнил соединение с этим IP. Но мы забыли одну вещь - не факт, что серверный сокет, открытый на GPRS будет работать. Я имею в виду проблемы класса active/passive режим для FTP например. Т.е. IP-адрес может быть присвоен модему из диапазона внутренних адресов, а далее транслироваться через NAT.
--------------------
"Практика выше (теоретического) познания, ибо она имеет не только достоинство всеобщности, но и непосредственной действительности." - В.И. Ленин
|
|
|
|
|
Jul 25 2006, 13:54
|
Участник

Группа: Участник
Сообщений: 68
Регистрация: 24-07-06
Пользователь №: 19 039

|
Цитата(Rst7 @ Jul 25 2006, 17:44)  Цитата(Yuriy_Rus @ Jul 25 2006, 16:07)  Цитата(GetSmart @ Jul 25 2006, 15:50)  Передаётся одной СМС один IP. Модем, получивший его посылает туда IP-пакет. Таким образом другой модем (сервер) получает IP-адрес клиента.
Но вариант с СМС неидеален. Как я уже говорил.
Что-то то ли я не понимаю, то ли ты... Что ты подразумеваешь под "ТУДА"? Как один модем может стать сервером, а другой клиентом? Сервер он на то и нужен, что IP у него постоянный. А у GPRS модема IP выдаются каждый раз новый при подключении. Т.е. модемы не могут общаться между собой сразу, т. к. каждый раз они не будут знать свои адреса. Задача сервера - обменять модемы адресами. Протокол TCP/IP подразумевает, что на одной стороне создается серверный сокет (ожидающий соединение), а на другой стороне клиентский (который является инициатором коннекта). После того, как поднялся PPP и вы в своей софтине создаете серверный сокет, становится известен его IP, который достаточно послать клиенту, чтобы тот выполнил соединение с этим IP. Но мы забыли одну вещь - не факт, что серверный сокет, открытый на GPRS будет работать. Я имею в виду проблемы класса active/passive режим для FTP например. Т.е. IP-адрес может быть присвоен модему из диапазона внутренних адресов, а далее транслироваться через NAT. Как можно послать от "модема-сервера" его IP клиенту, если IP клиента неизвестен. И какими средствами C++ я могу узнать IP модема в момент, когда он приходит модему с Базовой станции? Или я опять чего-то не догоняю? Просветите "доступным" языком, пожалуйста.
|
|
|
|
|
Jul 25 2006, 18:00
|

Местный
  
Группа: Свой
Сообщений: 361
Регистрация: 18-04-05
Пользователь №: 4 258

|
Цитата(GetSmart @ Jul 25 2006, 18:38)  Я сам не знаю всех этих протоколов. Чисто на интуиции думаю. Подразумевается, что один из телефонов известен другому. Например все клиенты должны знать телефонный номер сервера. В вашей задаче можно считать, что один из телефонов - сервер, а другой (или даже другие) - клиент. Проблема только в том, что сервер должен отсылать СМС, а он-то и не знает номер клиента.
Ситуация: Один телефон регистрируется и получает IP. После он отправляет СМС с этим IP на сервер, телефонный номер которого он знает. Сервер после этого тоже регистрируется и уже через GPRS протокол (не знаю PPP или что-то ещё) отсылает на полученный им IP пакет данных. В этом пакете будет содержаться его собственный IP (сервера). Ну и далее они гоняют данные друг другу.
Если всё ПО писать под себя, то я бы вообще не стал вводить такое жёсткое разделение на клиент/сервер между двумя телефонами. Который первый инициировал соединение - тот и является клиентом. А изначально оба телефона могут быть равноценными. Да что тут мудрить, про dyndns уже писал. Самый верхний уровень TCP/IP, без скатываения вниз. У каждого учасника обмена будет свое имя, скажем terminal1.dyndns.org - это константа, не меняется, и известно каждому участнику соединения (terminal2.dyndns.org, terminal3.... и т.п.). Используя службу DNS (ну и DynDNS соответственно, черех обращение к зоне DynDNS) эти имена переворачиватся в динамические IP адреса (выданные на данные момент провайдером). Все друг друга опознали и разговаривают между собой по тохнологии клиент-сервер (over TCP или UDP).
|
|
|
|
|
Jul 26 2006, 05:43
|
Участник

Группа: Участник
Сообщений: 68
Регистрация: 24-07-06
Пользователь №: 19 039

|
Цитата(GetSmart @ Jul 25 2006, 18:38)  Я сам не знаю всех этих протоколов. Чисто на интуиции думаю. Подразумевается, что один из телефонов известен другому. Например все клиенты должны знать телефонный номер сервера. В вашей задаче можно считать, что один из телефонов - сервер, а другой (или даже другие) - клиент. Проблема только в том, что сервер должен отсылать СМС, а он-то и не знает номер клиента.
Ситуация: Один телефон регистрируется и получает IP. После он отправляет СМС с этим IP на сервер, телефонный номер которого он знает. Сервер после этого тоже регистрируется и уже через GPRS протокол (не знаю PPP или что-то ещё) отсылает на полученный им IP пакет данных. В этом пакете будет содержаться его собственный IP (сервера). Ну и далее они гоняют данные друг другу.
Если всё ПО писать под себя, то я бы вообще не стал вводить такое жёсткое разделение на клиент/сервер между двумя телефонами. Который первый инициировал соединение - тот и является клиентом. А изначально оба телефона могут быть равноценными. Как программно на С++ реализовать "выемку" GPRS модемом своего IP, как только он его получил? И как программно на С++ реализовать "отсыл" SMS на номер сервера? Или это всё уникальные функции, зависящие от типа(марки изготовителя) модема? Цитата(Chupakabra @ Jul 25 2006, 22:00)  Цитата(GetSmart @ Jul 25 2006, 18:38)  Я сам не знаю всех этих протоколов. Чисто на интуиции думаю. Подразумевается, что один из телефонов известен другому. Например все клиенты должны знать телефонный номер сервера. В вашей задаче можно считать, что один из телефонов - сервер, а другой (или даже другие) - клиент. Проблема только в том, что сервер должен отсылать СМС, а он-то и не знает номер клиента.
Ситуация: Один телефон регистрируется и получает IP. После он отправляет СМС с этим IP на сервер, телефонный номер которого он знает. Сервер после этого тоже регистрируется и уже через GPRS протокол (не знаю PPP или что-то ещё) отсылает на полученный им IP пакет данных. В этом пакете будет содержаться его собственный IP (сервера). Ну и далее они гоняют данные друг другу.
Если всё ПО писать под себя, то я бы вообще не стал вводить такое жёсткое разделение на клиент/сервер между двумя телефонами. Который первый инициировал соединение - тот и является клиентом. А изначально оба телефона могут быть равноценными.
Да что тут мудрить, про dyndns уже писал. Самый верхний уровень TCP/IP, без скатываения вниз. У каждого учасника обмена будет свое имя, скажем terminal1.dyndns.org - это константа, не меняется, и известно каждому участнику соединения (terminal2.dyndns.org, terminal3.... и т.п.). Используя службу DNS (ну и DynDNS соответственно, черех обращение к зоне DynDNS) эти имена переворачиватся в динамические IP адреса (выданные на данные момент провайдером). Все друг друга опознали и разговаривают между собой по тохнологии клиент-сервер (over TCP или UDP). Расскажи подробнее про DNS(DynDNS) как там, и что? Как реализовано "переворачивание" имён в динамические IP?
|
|
|
|
|
Jul 26 2006, 06:01
|
Участник

Группа: Участник
Сообщений: 68
Регистрация: 24-07-06
Пользователь №: 19 039

|
Цитата(GetSmart @ Jul 25 2006, 18:38)  Я сам не знаю всех этих протоколов. Чисто на интуиции думаю. Подразумевается, что один из телефонов известен другому. Например все клиенты должны знать телефонный номер сервера. В вашей задаче можно считать, что один из телефонов - сервер, а другой (или даже другие) - клиент. Проблема только в том, что сервер должен отсылать СМС, а он-то и не знает номер клиента.
Ситуация: Один телефон регистрируется и получает IP. После он отправляет СМС с этим IP на сервер, телефонный номер которого он знает. Сервер после этого тоже регистрируется и уже через GPRS протокол (не знаю PPP или что-то ещё) отсылает на полученный им IP пакет данных. В этом пакете будет содержаться его собственный IP (сервера). Ну и далее они гоняют данные друг другу.
Если всё ПО писать под себя, то я бы вообще не стал вводить такое жёсткое разделение на клиент/сервер между двумя телефонами. Который первый инициировал соединение - тот и является клиентом. А изначально оба телефона могут быть равноценными. Не, блин, я туту прикинул SMS может и через день прийти(раз на раз не приходится). Тут важна стабильность. Так что будет сервер в Интернете, через который будет по GPRS происходить обмен IP. Использование звонков и SMS лучше оставить.
Сообщение отредактировал Yuriy_Rus - Jul 26 2006, 06:04
|
|
|
|
|
Jul 26 2006, 10:37
|

Гуру
     
Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244

|
Цитата(Yuriy_Rus @ Jul 25 2006, 12:38)  Сначала модем посылает свой динамический IP серверу. Затем принимает IP другого. Всё то же самое делает и другой модем. Если есть сервер, то и работайте ВСЕГДА через него и не морочте голову. Это между прочим ЕДИНСТВЕННЫЙ универсальный вариант. Ибо даже обмеявшись полученными IP вы удручающе высокой вероятностью обменяетесь ЛОКАЛЬНЫМ IP адресом внутренней сети провайдера, от котогого никакого толку за пределами сети не будет и если провайдер не полный лох, то доступа не будет и к другим IP (за исключением Gateway/Proxy/DNS) в его сети. Посему ВСЯ работа через сервер, или оплата (многие провайдеры сие предоставляют) реального фиксированного IP для ваших модемов.
--------------------
Feci, quod potui, faciant meliora potentes
|
|
|
|
|
Jul 26 2006, 10:54
|
Участник

Группа: Участник
Сообщений: 68
Регистрация: 24-07-06
Пользователь №: 19 039

|
to Chupackabra Я уже несколько раз говорил, что будет свой сервер 24online. Цитата(zltigo @ Jul 26 2006, 14:37)  Цитата(Yuriy_Rus @ Jul 25 2006, 12:38)  Сначала модем посылает свой динамический IP серверу. Затем принимает IP другого. Всё то же самое делает и другой модем.
Если есть сервер, то и работайте ВСЕГДА через него и не морочте голову. Это между прочим ЕДИНСТВЕННЫЙ универсальный вариант. Ибо даже обмеявшись полученными IP вы удручающе высокой вероятностью обменяетесь ЛОКАЛЬНЫМ IP адресом внутренней сети провайдера, от котогого никакого толку за пределами сети не будет и если провайдер не полный лох, то доступа не будет и к другим IP (за исключением Gateway/Proxy/DNS) в его сети. Посему ВСЯ работа через сервер, или оплата (многие провайдеры сие предоставляют) реального фиксированного IP для ваших модемов. Так что теперь и общаться модемам только через сервак? А в случае если они будут использовать одного и того же провайдера?
Сообщение отредактировал Yuriy_Rus - Jul 26 2006, 10:52
|
|
|
|
|
Jul 26 2006, 11:21
|
.
     
Группа: Участник
Сообщений: 4 005
Регистрация: 3-05-06
Из: Россия
Пользователь №: 16 753

|
Цитата Yuriy_Rus 11 минут назад Отправлено #33 Группа: Участники Сообщений: 0 Регистрация: 24-07-06 Пользователь №: 19 039 Это как так? Сообщений = 0 !!! Цитата А в случае если они будут использовать одного и того же провайдера? Думаю тут 100% можно напрямую. Цитата(zltigo) Ибо даже обмеявшись полученными IP вы удручающе высокой вероятностью обменяетесь ЛОКАЛЬНЫМ IP адресом внутренней сети провайдера, от котогого никакого толку за пределами сети не будет и если провайдер не полный лох, то доступа не будет и к другим IP (за исключением Gateway/Proxy/DNS) в его сети. Что за бред? GPRS предоставляет доступ в глобальную сеть. Поэтому и айпишники он выдаёт глобальные. Точно такие же как и при dial-up'е.
--------------------
Заблуждаться - Ваше законное право :-)
|
|
|
|
|
Jul 26 2006, 11:29
|

Гуру
     
Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244

|
Цитата(GetSmart @ Jul 26 2006, 14:21)  Что за бред? GPRS предоставляет доступ в глобальную сеть. Поэтому и айпишники он выдаёт глобальные. Незнание азбуки IP - для доступа в глобальную сеть не нужно иметь глобальный IP. Вот я прямо сейчас пишу с машины которой выдан адрес 192.168.4.102. Заходите в гости :-) Цитата Думаю тут 100% можно напрямую. Повторяю - если провайдер не без царя в голове (читай - сеть у него сделано не так, как у Вас "во дворе"), то доступа к другим машинам будет закрыт.
--------------------
Feci, quod potui, faciant meliora potentes
|
|
|
|
|
Jul 26 2006, 11:42
|

Гуру
     
Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244

|
Цитата(Yuriy_Rus @ Jul 26 2006, 13:54)  Так что теперь и общаться модемам только через сервак? А какая проблема? Если сервак при любом раскладе будет? Собираетесь 100000 абонентов одновременно соединять и хотите на мощности сервера сэкономить? Несколько десятков соединений любая 386 потянет. Цитата(Yuriy_Rus @ Jul 26 2006, 13:54)  Так что теперь и общаться модемам только через сервак? А какая проблема? Если сервак при любом раскладе будет? Собираетесь 100000 абонентов одновременно соединять и хотите на мощности сервера сэкономить? Несколько десятков соединений любая 386 под первым попавшемся Linux потянет. Цитата(Chupakabra @ Jul 26 2006, 14:30)  Вот уж где надо спецов по GPRS звать  Это не облась GPRS, а решение системных администраторов конкретного провайдера.
--------------------
Feci, quod potui, faciant meliora potentes
|
|
|
|
|
Jul 26 2006, 14:07
|

Гуру
     
Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244

|
Цитата(Chupakabra @ Jul 26 2006, 16:26)  Ну я имел ввиду уровень ниже, т.е. возможности и основы функционирования самого GPRS. Или tcp/ip так плотно интегрирован с ним, что рассмотрение можно ограничить только tcp/ip протоколами? Чего-то я не понял :-(. Интеграции нет и по этой причине можно автономер разбираться с IP.. Что касается архитектуры GPRS/IP, то есть старенький, но зато перезентационный обзорчик от "Архитектора" сети BT: http://ripe.net/ripe/meetings/ripe-37/pres...prs/sld001.html
--------------------
Feci, quod potui, faciant meliora potentes
|
|
|
|
|
Jul 27 2006, 08:31
|

Гуру
     
Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244

|
Цитата(3.14 @ Jul 27 2006, 11:08)  Мне вот что интересно, в случае работы через DNS по динамическим IP ... Сколько потребуется времени чтоб вновь присвоенный IP к определенному имени "расползся" по другим DNS серверам, а то получится хотя новый IP и линкован к имени а попасть можно будет на него будет например через сутки (имеется ввиду по имени а не по IP)? А никто и не будет динамически имена переприсваивать! Вам временно выдали IP из пула ПРИНАДЛЕЖАЩЕГО не Вам - с чего это Вы взяли, что хоть какой-то DNS пойдет не на сервер владельца спрашивать "назначенное" ему имя :-). В случае, если это Ваш пул адресов, то тогда конечно вы можете указать какой из ВАШИХ серверов отвечает за привязку и с ним играться. Степень "расползания" может быть ограничена пожеланием другим серверам всем всегда обращаться к Вашему серверу, что однако не помешает кому-нибудь (тем более не серверу) на это наплевать и закэшировать. Короче, об именах забудьте, либо "назначайте" из прямо на пользовательской машине в hosts - тут Вам никто не указ :-)
--------------------
Feci, quod potui, faciant meliora potentes
|
|
|
|
|
Jul 27 2006, 08:38
|
Участник

Группа: Участник
Сообщений: 68
Регистрация: 24-07-06
Пользователь №: 19 039

|
Цитата(zltigo @ Jul 26 2006, 18:07)  Цитата(Chupakabra @ Jul 26 2006, 16:26)  Ну я имел ввиду уровень ниже, т.е. возможности и основы функционирования самого GPRS. Или tcp/ip так плотно интегрирован с ним, что рассмотрение можно ограничить только tcp/ip протоколами?
Чего-то я не понял :-(. Интеграции нет и по этой причине можно автономер разбираться с IP.. Что касается архитектуры GPRS/IP, то есть старенький, но зато перезентационный обзорчик от "Архитектора" сети BT: http://ripe.net/ripe/meetings/ripe-37/pres...prs/sld001.htmlРешил всё-таки попробовать вариант с обменом IP между модемами с одинаковым провайдером. Если не выйдет воспользуюсь вашей идеей, и всё будет через сервер.
|
|
|
|
|
Jul 27 2006, 08:43
|

Гуру
     
Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244

|
Цитата(kuguar @ Jul 27 2006, 11:28)  если соединять два модема из одной сети - то по идее поглядев ип адреса и если они из одной подсети - связать из можно Уже писал - тоже маловероятно, если провайдер нормальный. Дело в том, что это ведь не Ваша сеть на работе/дома(в квартире), где все компьютеры по определению должны видеть и работать друг с другом. Тут вариант гостинницы, где временно встречаются со своими компьютерами разные НЕЗНАКОМЫЕ даже люди и даже будучи подключенными в одну сеть они из соображений безопасности НЕ ДОЛЖНЫ иметь возможность выходить на другие компьютеры постояльцев, да и на компьютеры владельцев гостинницы тоже :-).
--------------------
Feci, quod potui, faciant meliora potentes
|
|
|
|
|
Jul 27 2006, 09:29
|

Их либе дих ...
     
Группа: СуперМодераторы
Сообщений: 2 010
Регистрация: 6-09-04
Из: Russia, Izhevsk
Пользователь №: 609

|
Цитата(zltigo @ Jul 27 2006, 11:31)  Цитата(3.14 @ Jul 27 2006, 11:08)  Мне вот что интересно, в случае работы через DNS по динамическим IP ... Сколько потребуется времени чтоб вновь присвоенный IP к определенному имени "расползся" по другим DNS серверам, а то получится хотя новый IP и линкован к имени а попасть можно будет на него будет например через сутки (имеется ввиду по имени а не по IP)?
А никто и не будет динамически имена переприсваивать! Вам временно выдали IP из пула ПРИНАДЛЕЖАЩЕГО не Вам - с чего это Вы взяли, что хоть какой-то DNS пойдет не на сервер владельца спрашивать "назначенное" ему имя :-). ... Ну вот например, мое устройство коннектится своим GPRS-ом к сети оператора и тот дает динамический реальный IP, я сообщаю свой новорожденный IP "специализированному" DNS серверу который линкует меня с именем trtrtr.hrhrhr.ru. Далее, человек где-нить в никарагуа пытается достучаться до этого trtrtr.hrhrhr.ru, запрос с его DNS по невероятной цепи доходят до моего DNS, в итоге коннект устновлен можно работать. Проходит какое то время, снова плдключаю свое устройство, получаю другой IP, снова регистрируюсь на нужном DNS. Опять человек из никарагуа хочет попасть по trtrtr.hrhrhr.ru, и ведь тут-то должен наступить полный облом, т.к. в кешах, скорее всего не одного DNS, пока будет фигурировать старый IP ... В итоге все как-то не предсказуемо получается ... Или я где то ошибаюсь?
--------------------
Усы, борода и кеды - вот мои документы :)
|
|
|
|
|
Jul 27 2006, 09:57
|

Частый гость
 
Группа: Свой
Сообщений: 118
Регистрация: 22-04-05
Из: Томск
Пользователь №: 4 382

|
однако ман DNS надо. про несколько серверов fff.ru nnn.com на одном ip я знаю. а наоборот - вопрос интересный. Тут пахнет типа распределенной системой, однако насколько я знаю процедуру регистрации адреса - там указывается один ip. Процедура регистарции - это не настолько автоматизированный процесс, чтобы зная протокол на один и тот же адрес в течении пары(10, 100) минут перегистрировать на разные динамические ip. Эрго - соответствие dns-имени и 1 стат ип необходимо. 1. имеем 2 реальных ип 111(статический реальный) и 222(причем 222 может быть динамический и даже fake) 2. согласно процедуре регистрации имени производим регистрацию ццц.мну.ком на 111 (как здесь описано например http://noc.tomsk.ru/DNS-application.txt ) 3. на этом серванте который по идее 24-onair поднимаем socks для себя и входное для друга из Никарагуа 4. когда линк 111<->222 поднят ты с другом общаешься нормально. 5. когда линка нет - друг из Никарагуа получит чтото типа "no 3.14 on air!" которое скажет ему сервер 111 6. когда 111 в дауне - по http например друг получит no route to host.
|
|
|
|
|
Jul 27 2006, 10:03
|

Гуру
     
Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244

|
Цитата(3.14 @ Jul 27 2006, 12:29)  я сообщаю свой новорожденный IP "специализированному" DNS серверу который линкует меня с именем trtrtr.hrhrhr.ru. Уже писал - никакой DNS сервер не примет от Вас (вопросы взлома обсуждать не будем) "линковку" имени к IP за которым прописан ОФИЦИАЛЬНЫЙ DNS сервер. Цитата Далее, И никакого "далее" уже обсуждать не надо.. А если позволят на "официальном" менять, то действительно: Цитата В итоге все как-то не предсказуемо получается ... Хотя можете поставить свой собственный абсолютно автономный не завязанный на общий систему DNS сервер и сообщив _его_ конкретный IP адрес в Никакрагуа, при условии сброса кэша на никарагуанской машине перед каждым сеансом - получите результат.
--------------------
Feci, quod potui, faciant meliora potentes
|
|
|
|
|
Jul 27 2006, 11:58
|
Участник

Группа: Участник
Сообщений: 68
Регистрация: 24-07-06
Пользователь №: 19 039

|
Цитата(zltigo @ Jul 27 2006, 12:43)  Цитата(kuguar @ Jul 27 2006, 11:28)  если соединять два модема из одной сети - то по идее поглядев ип адреса и если они из одной подсети - связать из можно
Уже писал - тоже маловероятно, если провайдер нормальный. Дело в том, что это ведь не Ваша сеть на работе/дома(в квартире), где все компьютеры по определению должны видеть и работать друг с другом. Тут вариант гостинницы, где временно встречаются со своими компьютерами разные НЕЗНАКОМЫЕ даже люди и даже будучи подключенными в одну сеть они из соображений безопасности НЕ ДОЛЖНЫ иметь возможность выходить на другие компьютеры постояльцев, да и на компьютеры владельцев гостинницы тоже :-).  Вы были правы. Короче, останавливаюсь на варианте, когда весь поток сообщений будет проходить и рассылаться через сервер. Уже решил, что модемов в системе будет больше 2. Т. е. будет идентификация на серваке(по индивидуальному номеру SIM). Алгоритм реализации: Формат сообщения от модема на сервер будет такой: (свой номер SIM)(номер SIM, которой надо передать данные)(данные). Занесение в БД(если в 1-ый раз) или Идентификация на серваке. Запись о модеме в БД будет содержать: 1. Номер SIM 2. IP 3. Данные, кот. ему нужно отправить. Далее долбание на сервака(думаю каждые 30 сек. может меньше, может больше) на предмет того, "есть, что для меня"? Формат сообщения на запрос: (свой номер SIM). В это время другой модем отсылает сообщение: (свой номер SIM). Если в первый раз то заноситься в БД, если второй, то просто идентифицируется, и идёт проверка, есть что для него. Если есть, то отправляется. Временно собщения на отправку, будут храниться на серваке с привязкой к номеру получателя. Если модем отключился от GPRS зашёл снова, то меняется его IP в базе. Базу планирую делать на векторах. Вдруг модемов станет больше. Проблема в том, что будет идти постояноое долбание сервака на предмет данных для себя. Напряг вообщем. И с обновлением базы (модем поменяли или SIM, и всё, запись просто висит) то же не всё понятно. Через 2 месяца всё удалять и формировать занаво что-ли? Может у кого другие идеи на счёт алгоритма есть? Но всё же кто нибудь пробовал разменять модемы IP, при условии, что у однин моб. оператор, и пообщаться? А то вдруг у на симках какого нибудь оператора и получиться. Или отказаться от этой идеи совсем?
Сообщение отредактировал Yuriy_Rus - Jul 27 2006, 12:04
|
|
|
|
|
Jul 27 2006, 12:10
|
Участник

Группа: Участник
Сообщений: 68
Регистрация: 24-07-06
Пользователь №: 19 039

|
Хотя можете поставить свой собственный абсолютно автономный не завязанный на общий систему DNS сервер и сообщив _его_ конкретный IP адрес в Никакрагуа, при условии сброса кэша на никарагуанской машине перед каждым сеансом - получите результат. [/quote] Это реально? Или за...бистое занятие?
|
|
|
|
|
Jul 27 2006, 13:04
|

Гуру
     
Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244

|
Цитата(Yuriy_Rus @ Jul 27 2006, 14:58)  Может у кого другие идеи на счёт алгоритма есть? Что за пляски с бубном я не понял совсем :-( Хотели канал с IP протоколом, так и пользуйте. Берем примитивный вариант, который потом можете совершенствовать под динамическое выделение ресурсов и удобную идентификацию. Пишем "сервер" на котором активизируем 16 сокетов на порты xxx01...xx16. Каждый из внешних девайсов коннектируется к своему порту и посылает серверу пакетик в которм просит его соединить с девайсом подсоединонным к другому указанному порту. Сервак или соединяет если тот девайc подключен и тупо пересылая фреймы организует прозрачнейший канал, либо сообщает об отсутствии партнера, либо буферирует фреймы для последующей передачи, либо активизирует процедуру вызова партнера на связь.. В общем по вкусу и возможностям. Если нужно динамическое выделение ресурсов, адресация, паролирование, то тогда для сервера пишется служба при присоединении к которй объект идеттифицируется по имени-паролю и ему выдается динамически выдается порт для дальнейшей работы в этом сеансе связи. Цитата(Yuriy_Rus @ Jul 27 2006, 15:10)  Это реально? Или за...бистое занятие?  Совершенно банальный сервис. Проблемы нулевые.
--------------------
Feci, quod potui, faciant meliora potentes
|
|
|
|
|
Jul 27 2006, 13:29
|
Участник

Группа: Участник
Сообщений: 68
Регистрация: 24-07-06
Пользователь №: 19 039

|
Что - то стрёмно. Держать открытым сокет для каждого нового девайса. Хотя, что эффективнее, надо подумать. Я в Socket API новичок.
Сообщение отредактировал Yuriy_Rus - Jul 27 2006, 13:30
|
|
|
|
|
Jul 27 2006, 14:25
|

Гуру
     
Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244

|
Цитата(Yuriy_Rus @ Jul 27 2006, 16:29)  Что - то стрёмно. Держать открытым сокет для каждого нового девайса. Абсолютно ничего стремного, кроме того можете, как я писал держать только один на всех для авторизации и динамческого выделения/открытия рабочих. Цитата Кто поставит експеримент, тот и узнает. Эксперимент по отношению к конкретному оператору ставится безумно легко любым, кто имеет доступ к GPRS с телефона - просто выходите через своего любимого провайдера в интернет и смотрите выданный IP. Он будет почти наверняка из диапазона 10.0.0.0 ... 10.255.255.255 Или другой (менее вероятно) private сети. О приватном диапазоне в каждом из классов сетей можете справиться в RFC1918. Глобальные и фиксированные адреса общепринято выдавать за отдельную абонентскую плату. Все выше написанное не есть предположения, а опыт.
--------------------
Feci, quod potui, faciant meliora potentes
|
|
|
|
|
Jul 27 2006, 16:42
|

Местный
  
Группа: Свой
Сообщений: 361
Регистрация: 18-04-05
Пользователь №: 4 258

|
Цитата(GetSmart @ Jul 27 2006, 20:36)  Гениально!  Не, сурьёзно kuguar зарабатывает 10 гринов. Быстродействие такой системы удовлетворяет ?  ) Вся обсуждаемая "мутотень" предпологала довольно оперативный обмен информацией, а тут получается "але барышня"  А под это дело у опсоса нельзя арендовать реальные IP просто. У мтс помоему такое есть. Да и опсоса думаю есть шанс подобрать специально ?
|
|
|
|
|
Jul 27 2006, 20:37
|

Гуру
     
Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244

|
Цитата(kuguar @ Jul 27 2006, 18:31)  могу предложить следующий вариант - ты говорил что неудобно постоянно долбится на сервер за своей информацией. Кто-нибудь ответит, зачем "долбится", если установив канал можно держать его "вечно" и переданная информация "сама" прилетит. При развале - переустановить. Или это какие-то Российские гримасы, типа платы за время GPRS соединения а не за трафик на такое поведение толкают?
--------------------
Feci, quod potui, faciant meliora potentes
|
|
|
|
|
Jul 28 2006, 04:54
|
Участник

Группа: Участник
Сообщений: 68
Регистрация: 24-07-06
Пользователь №: 19 039

|
Цитата(zltigo @ Jul 28 2006, 00:37)  Цитата(kuguar @ Jul 27 2006, 18:31)  могу предложить следующий вариант - ты говорил что неудобно постоянно долбится на сервер за своей информацией.
Кто-нибудь ответит, зачем "долбится", если установив канал можно держать его "вечно" и переданная информация "сама" прилетит. При развале - переустановить. Или это какие-то Российские гримасы, типа платы за время GPRS соединения а не за трафик на такое поведение толкают? И это вариант хороший. Однако, программная реализация всех эти планов заставляет задуматься. Держать на серваке несколько модемов. Держать несколько "установленных каналов". Организовывать пересыл сообщений по этой куче каналов. Подскажи, пожалуйста, (хотя бы вообщем) как енто воплотить в жизнь программно.
|
|
|
|
|
Jul 28 2006, 06:27
|

Гуру
     
Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244

|
Цитата(Yuriy_Rus @ Jul 28 2006, 07:54)  Держать несколько "установленных каналов". Организовывать пересыл сообщений по этой куче каналов. Подскажи, пожалуйста, (хотя бы вообщем) как енто воплотить в жизнь программно. Если речь иде не об embedded решении для сервера, то абсолютно любая операционка Win-Linux-..... На которой запушена описанная ранее функция реализованная на штатном интерфейсе BSD совместимых sockets.
--------------------
Feci, quod potui, faciant meliora potentes
|
|
|
|
|
Jul 28 2006, 06:37
|
Участник

Группа: Участник
Сообщений: 68
Регистрация: 24-07-06
Пользователь №: 19 039

|
Цитата(zltigo @ Jul 28 2006, 10:27)  Цитата(Yuriy_Rus @ Jul 28 2006, 07:54)  Держать несколько "установленных каналов". Организовывать пересыл сообщений по этой куче каналов. Подскажи, пожалуйста, (хотя бы вообщем) как енто воплотить в жизнь программно.
Если речь иде не об embedded решении для сервера, то абсолютно любая операционка Win-Linux-..... На которой запушена описанная ранее функция реализованная на штатном интерфейсе BSD совместимых sockets. Нет сейчас хочу замутить сервак на Си в Винде (чтобы с алгоритмом разобраться, проблемы реализации порешать, проверить как оно всё работает, отладить и сделать как можно эффективнее). Я просто енто лучше всего знаю. А затем буду преобразовывать под BSD.
Сообщение отредактировал Yuriy_Rus - Jul 28 2006, 06:38
|
|
|
|
|
Jul 28 2006, 07:25
|
Участник

Группа: Участник
Сообщений: 68
Регистрация: 24-07-06
Пользователь №: 19 039

|
Цитата(zltigo @ Jul 28 2006, 10:44)  А разница при портировании будет минимальнейшая, особенно если WIN расширений sockets не пихать без всякой на то надобности. Тем более тестовый вариант буду делать в Винде на Си. Так что с реализацией как программно замутить несколько активных каналов?
|
|
|
|
|
Jul 28 2006, 07:42
|

Гуру
     
Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244

|
Цитата(Yuriy_Rus @ Jul 28 2006, 10:25)  Так что с реализацией как программно замутить несколько активных каналов? ??? А как один - понятно? Тогда сделайте это столько раз, сколько нужно... Можете почитать для затравки исходники чего-либо простого, например, TFTP сервера. Там уже будет соединение с выделенным портом, сообщение "чего хочу", достижение "консенсуса" и по достижении оного выделение личного сокета для последующей работы. Останется только выбросить протокол пересылки файла заменив его пересылкой между подключившимися клиентами.
--------------------
Feci, quod potui, faciant meliora potentes
|
|
|
|
|
Jul 28 2006, 07:53
|
Участник

Группа: Участник
Сообщений: 68
Регистрация: 24-07-06
Пользователь №: 19 039

|
Цитата(zltigo @ Jul 28 2006, 11:42)  Цитата(Yuriy_Rus @ Jul 28 2006, 10:25)  Так что с реализацией как программно замутить несколько активных каналов?
??? А как один - понятно? Тогда сделайте это столько раз, сколько нужно... Смысле в единичный момент времени будет только 1 канал между 2 девайсами? Или можно сделать несколько активных каналов? Если да, то как?
|
|
|
|
|
Jul 28 2006, 08:24
|
Участник

Группа: Участник
Сообщений: 68
Регистрация: 24-07-06
Пользователь №: 19 039

|
bool cycle = 0; INT32 Soc; //----------------------------------------------------------------------------- void Connect() { int Soc1; SOCKADDR_IN Sin1; int Sin1len = sizeof(Sin1); Soc1 = accept(Soc,(struct sockaddr*)&Sin1, &Sin1len); //функция извлечения будет висеть пока не получит клиента if(Soc1 <= 0) { Application->MessageBox("Ошибка при извлечении из очереди запроса на соединение!", "Ошибка...", MB_OK+MB_ICONERROR); } else { char* Ipbuf = inet_ntoa(Sin1.sin_addr); //номер узла сети AnsiString a2 = Ipbuf; int b = htons(Sin1.sin_port); //номер порта AnsiString Message = "Принято соединение с " + a2 + " " + IntToStr(  ; Application->MessageBox(Message.c_str(), "Сообщение...", MB_OK+MB_ICONINFORMATION); BYTE RecvErrorBuffer[1]; char RecvBuffer[20]; while(recv(Soc1, RecvErrorBuffer, sizeof(RecvBuffer), 0)!= SOCKET_ERROR) { // printf("%c", RecvBuffer[0]); recv(Soc1, RecvBuffer, sizeof(RecvBuffer), MSG_DONTROUTE); } // тут идентификация, обработка данных на отправку на другой девайс, сохранение и т. д. closesocket(Soc1); } } //----------------------------------------------------------------------------- void __fastcall TfServer::B_WaitngModeClick(TObject *Sender) { // Soc = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP); if(Soc == -1) { Application->MessageBox("Ошибка работы функции создания Socket!", "Ошибка...", MB_OK+MB_ICONERROR); } else { SOCKADDR_IN Sin; Sin.sin_family = AF_INET; Sin.sin_port = htons(80); Sin.sin_addr.s_addr = INADDR_ANY; / int Bnd; Bnd = bind(Soc, (LPSOCKADDR)&Sin, sizeof(Sin)); //(LPSOCKADDR)&Sin - указывает на структуру данных, содержащую локальный адрес, приписываемый socket'у (для TCP/IP) if(Bnd == -1) { Application->MessageBox("Ошибка при определении локального адреса канала связи со средой!", "Ошибка...", MB_OK+MB_ICONERROR); } else { int Lstn; Lstn = listen(Soc, SOMAXCONN); // SOMAXCONN - определяет максимальную длину очереди входящих запросов на установление связи if(Lstn != 0) { Application->MessageBox("Ошибка при ожидании запроса!", "Ошибка...", MB_OK+MB_ICONERROR); } else { // do // { Connect(); // }while(cycle == 0); } } } } //------------------------------------------------------------------------------------------------------------------- Вот общий каркас сервака с одни рабочим сокетом, к которому все цепляются, делают своё "чёрное дело" и отцепляются. Как он (сервер) будет держать несколько сокетов и несколько девайсов на них? Как будет организовываться пересыл данных между девайсами на разных сокетах? Как будет оганизовано пересыл между несколькими парами устройств?
|
|
|
|
|
Jul 28 2006, 08:38
|

Гуру
     
Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244

|
Цитата(Yuriy_Rus @ Jul 28 2006, 11:24)  Вот общий каркас сервака с одни рабочим сокетом, к которому все цепляются, делают своё "чёрное дело" и отцепляются. Извините, не стал читать, или как принято сейчас выражаться "ниасалил" :-) Цитата Как он (сервер) будет держать несколько сокетов и несколько девайсов на них? Может Вы не понимаете, что сокетов может быть открыто по числу ПОРТОВ на стороне сервера? Или я тогда вообще НИЧЕГО не понимаю, чего Вы не понимаете :-( Цитата Как будет организовываться пересыл данных между девайсами на разных сокетах? Вычитали содержимое из одного сокета и тупо запихнули его в другой. Цитата Как будет оганизовано пересыл между несколькими парами устройств?  А чем "это" отличается от пересылки между одной парой? Проблема схожая с открытием второго сокета? Настойчиво повторяю: Цитата Можете почитать для затравки исходники чего-либо простого, например, TFTP сервера. Там уже будет соединение с выделенным портом, сообщение "чего хочу", достижение "консенсуса" и по достижении оного выделение личного сокета для последующей работы. Останется только выбросить протокол пересылки файла заменив его пересылкой между подключившимися клиентами.
--------------------
Feci, quod potui, faciant meliora potentes
|
|
|
|
|
Jul 28 2006, 09:08
|
Участник

Группа: Участник
Сообщений: 68
Регистрация: 24-07-06
Пользователь №: 19 039

|
[quote name='zltigo' date='Jul 28 2006, 12:38' post='138697'] [quote] Можете почитать для затравки исходники чего-либо простого, например, TFTP сервера. Там уже будет соединение с выделенным портом, сообщение "чего хочу", достижение "консенсуса" и по достижении оного выделение личного сокета для последующей работы. Останется только выбросить протокол пересылки файла заменив его пересылкой между подключившимися клиентами. [/quote] Не подскажите где можно найти эти исходники на Си.
|
|
|
|
|
Aug 1 2006, 11:14
|
Участник

Группа: Участник
Сообщений: 68
Регистрация: 24-07-06
Пользователь №: 19 039

|
Цитата(zltigo @ Jul 30 2006, 21:42)  Цитата Как ни странно Free Talks
Может не стои повторять ошибку? Господа вы это о чём? На счёт системы пересыла данными. Я на днях снова вернулся к рассмотрению данного вопроса, и меня можно сказать осинило. ОпСоСы уже давно реализовали данную проблему - ММС сообщения. Это и есть данные, которые пересылаются между GPRS модемами. И насколько меня информировали они это делают через свой сервер (не напрямую между телефонами). Но что я сомневаюсь, что они на своём сервере держат новый сокет под каждую трубу, вышедшую в GPRS или всё так и есть? Если нет расскажите мне, пожалуйста про схему, которую используют ОпСоСы. Ещё один момент, zltigo предлагал схему, в которой модемы постоянно висят в GPRS. Но я тут опять пораскинул всем, чем есть, и осознал что если телефон долгое время не активен в сети, то его банально обрубают, т. е. нужен "постоянный" трафик. Временной интервал у разных ОпСоСов, насколько мне известно разный, думаю примерно 10-15 минут (экмпериментов не ставил, если кто-то ставил сообщите, пожалуйста). А организовывать постоянный трафик не хочется, тем более, что это маленькие, но всё же деньги. Товарищ zltigo, вы что думаете по этому поводу?
|
|
|
|
|
Aug 1 2006, 12:02
|

Гуру
     
Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244

|
Цитата(Yuriy_Rus @ Aug 1 2006, 14:14)  Господа вы это о чём? О неудачном первоначальном выборе Вами раздела для своего сообщения. Цитата И насколько меня информировали они это делают через свой сервер (не напрямую между телефонами).  Естественно. Цитата Но что я сомневаюсь, что они на своём сервере держат новый сокет под каждую трубу, вышедшую в GPRS или всё так и есть? На время процесса передачи да. В вашем случае речь шла о КАНАЛЕ, что есть совсем другое, нежели обмен сообщениями. Если Вас устраивает обмен сообщениями - SMS и MMS в Вашем полном распоряжении. Цитата осознал что если телефон долгое время не активен в сети, то его банально обрубают, т. е. нужен "постоянный" трафик. За что это вдруг? Провайдерский произвол? Кстати, обычно существует и плата за соединение. Учтите.
--------------------
Feci, quod potui, faciant meliora potentes
|
|
|
|
|
Aug 1 2006, 12:23
|
Участник

Группа: Участник
Сообщений: 68
Регистрация: 24-07-06
Пользователь №: 19 039

|
Цитата(zltigo @ Aug 1 2006, 16:02)  Провайдерский произвол? Да, РОССИЯ одним словом. Хотя в рамках решения данной задачи, думаю, надо произвести испытания на этот счёт Мегафона, МТС и ПчелинойЛинии хватит.
|
|
|
|
|
Aug 1 2006, 13:04
|
Участник

Группа: Участник
Сообщений: 68
Регистрация: 24-07-06
Пользователь №: 19 039

|
При всём при том, что ММС и есть яркий пример, обмена информацией между сервером ОпСоСа(интернетом) и абонентом(трубой) по GPRS каналу. Т. е. там вроде(сам не пробовал, а надо бы) такая система: сервак отправляет СМС трубе, мол для тебя есть ММС. Тот принимает решение качать или не качать. Если качать, то труба выходит в GPRS, получает свой дин. IP и лезит на сервер за своей ММС, а сервак отправляет.
Никто не знает енто всё так и есть?
|
|
|
|
|
Aug 1 2006, 13:50
|
Участник

Группа: Участник
Сообщений: 68
Регистрация: 24-07-06
Пользователь №: 19 039

|
to zltigo Не подскажете это имелось в виду передача данных по GSM или нет. //-------------------------------------------------------------------------------------------- Ярежим передачи данных. Вот АТ команды: at+cbst=7(9600 скорость),0,0(или 0(авто),0,0) - скорость, прозрачность, сжатие at+fclass=0 - режим передачи данных atd<номер телефона> ждем около 15 сек соединение, т.е. ответ CONNECT <speed> и через пару сек отправляем че хотим. А приемник только получает и нечего там настраивать не надо. Так соединяются два модема. Может даже конференц связь //--------------------------------------------------------------------------------------------
|
|
|
|
|
Aug 1 2006, 14:58
|

Гуру
     
Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244

|
Цитата(Yuriy_Rus @ Aug 1 2006, 16:50)  Не подскажете это имелось в виду передача данных по GSM или нет.  Улыбки не понял. Это не GPRS. Если устраивает оплачивать время по тарифам речевого соединеия - используйте. Скорость обычно 9600. Некоторые првайдеры при хорошем канале разрешают занимать до 14400 из общей GSM полосы 19200. Для входящего модемного звонка требуется обычно отдельный номер за дополнительную плату. Есть еще у некоторых провадеров HSCSD c занятием нескольких каналов там уже десятки килобит.
--------------------
Feci, quod potui, faciant meliora potentes
|
|
|
|
|
Aug 23 2006, 07:06
|
Группа: Новичок
Сообщений: 8
Регистрация: 23-08-06
Пользователь №: 19 755

|
По поводу сокетов на сервере :
1 Listening сокет и всё. Зачем изобретать лисапеды ? Yuriy_Rus - асинхронные сокеты вы будете долго осиливать, ей богу. Ставим Апач + cgi, либо Томсат. Пользуем HTTP протокол. В данной конфигурации - самое оно, плюс имеет уже отлаженые либы.
По поводу ММС имею сказать следующее.
Оператор присылает мобиле Push WAP сообщение по SMS каналу, в котором находится URL, на который необходимо обратиться. Мобила поднимает GPRS канал и по HTTP(sic!) каналу лезет за информацией.
|
|
|
|
|
Aug 23 2006, 09:25
|
Участник

Группа: Участник
Сообщений: 68
Регистрация: 24-07-06
Пользователь №: 19 039

|
Цитата(Shadow_ru @ Aug 23 2006, 11:06)  По поводу сокетов на сервере :
1 Listening сокет и всё. Зачем изобретать лисапеды ? Yuriy_Rus - асинхронные сокеты вы будете долго осиливать, ей богу. Ставим Апач + cgi, либо Томсат. Пользуем HTTP протокол. В данной конфигурации - самое оно, плюс имеет уже отлаженые либы.
По поводу ММС имею сказать следующее.
Оператор присылает мобиле Push WAP сообщение по SMS каналу, в котором находится URL, на который необходимо обратиться. Мобила поднимает GPRS канал и по HTTP(sic!) каналу лезет за информацией. Спасибо за участие в обсуждении и информацию, однако "лисапед" я уже изобрёл. Сервер написал по схеме, предложенной уважаемым zltigo. На Winsock2.h всё работает идеально. Остаётся приступить к работе с модемами, но тут у меня локальные проблемы. Кстати, вы не знаете стандартные AT+ команды, кот. позволяют произвести PAP авторизацию?
|
|
|
|
|
Aug 24 2006, 06:08
|
Группа: Новичок
Сообщений: 8
Регистрация: 23-08-06
Пользователь №: 19 755

|
РАР авторизацию - проводит стек IP/PPP дров , по крайней мере в Винде/Линуксах так.
|
|
|
|
|
Aug 24 2006, 08:31
|
Группа: Новичок
Сообщений: 8
Регистрация: 23-08-06
Пользователь №: 19 755

|
Yuriy_Rus, почитал тут ваши посты. Вы желаете провести поднятие РРР соединения и авторизацию модемом? Если честно, никогда не слышал о такой гайке. Знаете почему ? 1) РРР - УНИВЕРСАЛЬНЫЙ протокол. И реализуется соответсвенно на кочнечных устройствах, а не на средствах передачи данных. 2) Потому, что в момент установления РРР соединения там ещё проходят LСP пакеты, которыми задётся ваш личный IP адрес, плюс могут указываться DNS. И что с этими пакетами будет делать модем ? Сохранить в угол, а потом клеить в заголовки IP пакетов ? P.S. И ещё вопрос - каким образом в ваших оконечках будет храниться адрес сервера. Неужели в виде IP адреса?
|
|
|
|
|
Aug 24 2006, 12:26
|
Участник

Группа: Участник
Сообщений: 68
Регистрация: 24-07-06
Пользователь №: 19 039

|
Цитата(Shadow_ru @ Aug 24 2006, 12:31)  Yuriy_Rus, почитал тут ваши посты. Вы желаете провести поднятие РРР соединения и авторизацию модемом? Если честно, никогда не слышал о такой гайке. Знаете почему ? 1) РРР - УНИВЕРСАЛЬНЫЙ протокол. И реализуется соответсвенно на кочнечных устройствах, а не на средствах передачи данных. 2) Потому, что в момент установления РРР соединения там ещё проходят LСP пакеты, которыми задётся ваш личный IP адрес, плюс могут указываться DNS. И что с этими пакетами будет делать модем ? Сохранить в угол, а потом клеить в заголовки IP пакетов ? P.S. И ещё вопрос - каким образом в ваших оконечках будет храниться адрес сервера. Неужели в виде IP адреса? Модем со своей задачей справляется и через гипер-тер. в GPRS выходит. У него есть ряд спец. АТ команд, кот. задают точку доступа, имя и пароль польз. И ещё одна спец. команда, кот. через полученные данные выходит в GPRS, проходя PAP авторизацию(на практике работает точно, можете не сомневаться). Цитата(Shadow_ru @ Aug 24 2006, 12:31)  в момент установления РРР соединения там ещё проходят LСP пакеты, которыми задётся ваш личный IP адрес, плюс могут указываться DNS. И что с этими пакетами будет делать модем ? Сохранить в угол, а потом клеить в заголовки IP пакетов ? Вот про енто пожалуйста попотробнее всей этой технологии не знаю... Особенно интересуют "LСP пакеты". P. S. Да в виде IP-адреса. И всё в цвет работает, но пока на локалке и на Winsock, а не на модемах.
|
|
|
|
|
Aug 24 2006, 12:38
|
Участник

Группа: Участник
Сообщений: 68
Регистрация: 24-07-06
Пользователь №: 19 039

|
Ещй вопрос по программированию COM. Какая-то лажа... При запуске компа я запускаю свою прогу и через неё по СОМ пытаюся получить или передать данные - Ничерта, всё виснет. Затем пускаю гипертерминал, ввожу там команду, закрываю его, снова запускаю прогу, и уже всё Ок, данные отправляються и передаются. Подозреваю, что всё дело в настройках СОМ-порта. Но я вроде всё, что надо для модема в проге учитываю и в DCB всё запихиваю (скорость, чётность, биты данных, стоповые биты, управление потоком).
|
|
|
|
|
Aug 24 2006, 21:29
|

Гуру
     
Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244

|
Цитата(GetSmart @ Aug 24 2006, 23:55)  Вот я сейчас с берегов чёрного моря в инете через GPRS выхожу и мой айпишник совсем не похож на тот, который Вы говорили. Это почему? External IP=83.149.24.98 Internal IP=172.16.3.121 Это мы очем? О глобальных IP? 1. Я не в курсе, что и о чем там Аська пишет - посему ipconfig /all и информацию по GPRS интерфейсу сюда. 2. Никто не запрещает выдавать глобальные адреса, как и не ОБЯЗЫВАЕТ их выдавать. Мысль понятна? 3. Вы сейчас находитесь в несколько необычных условия роуминга а там есть два принципиально разных варианта "простой" - когда Ваш трафик терминируют по месту прописки и тогда с локальным IP возможны варианты и "правильный" - когда провайдер роуминга у себя терминирует. 4. Вернетесь домой - посмотрите.
--------------------
Feci, quod potui, faciant meliora potentes
|
|
|
|
|
Aug 24 2006, 22:33
|

Гуру
     
Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244

|
Цитата(GetSmart @ Aug 24 2006, 23:55)  ЗЫ вот что у меня в аське написано: External IP=83.149.24.98 Internal IP=172.16.3.121 Кстати, на самом деле вопрос в Вашем случае можно считать закрытым, поскольку трудно на самом деле толковать "Internal IP=172.16.3.121" иначе, как выданный Вам IP. А 172.16.0.0/16 это именно и есть приватная сеть "B" класса - спите спокойно, к Вам никто снаружи не придет :-)
--------------------
Feci, quod potui, faciant meliora potentes
|
|
|
|
|
Aug 25 2006, 01:39
|

Местный
  
Группа: Свой
Сообщений: 481
Регистрация: 1-08-05
Пользователь №: 7 267

|
Долгонько тут идет обсуждение очевидного...  Тщательно изучал этот вопрос когда-то. Пришел к одному выводу - только выделенный сервер в сети со статическим адресом для обмена. Все остальное - изврат... И еще: сейчас модем без поддержки IP - раритет... Никаких PPP, LCP, PAP, CHAP реализовывать в своих дивайсай нет смысла - все есть в модемах по $40... Проще всего GET, PUT на HTTP сервер посредством AT команд... На сервере - обрабатываюший запросы скрипт. Если объем данных небольшой, то самое выгодное (в России) - сеансное соединение устройств к серверу через пчелайн GPRS, ибо у них первые 5 кБ не тарифицируются... Халява  Срочный вызов дивайса для сеанса обмена можно осуществить простым дозвоном с сервера. Постоянная связь съедает трафик за счет флуда, который постоянно присутствует в приватной сети оператора (правда немного, если не отвечать на ICMP, сканировние DCOM маздая и пр.). В пчелайне в приватной сети - каша... Поддерживать постоянное соединение невыгодно и еще по одной причине - случайные обрывы, и связанный с этим перерасход трафика (Допустим набежало 10 кБ, обрыв... оператор при этом слупляет тарифный минимум - 49 кБ... И так далее ) Так, что сеанс дешевле в смысле накладныхрасходов. Надеяться например на то, что пчелайн в Казани и пчелайн в Москве - одна и та-же сеть не стОит - даже с IP вида 172.x.x.x на обеих модемах - это разные подсетки. Проверить легко - при соединении с сервером прописывается IP пчелайновского маршрутизатора - один на всех... Маршрутизатор некоторое время хранит информацию о соединении - то бишь можно пользовать не только TCP, но и UDP. Пакеты ходят туда и обратно - проверено... (шлем с модема UDP пакет на сервер, потом можно ответить UDP пакетом на IP адрес сотового маршрутизатора - доходит..) Хотя TCP все-таки надежнее. Вот такие наблюдения... ЗЫ: Выделенный сервер по нынешним временам не роскошь - обыденность... Например в наших краях сейчас идет акция - ADSL подключение вместе с "проводами до дома" за 300 руб  Сам модем стОит 27 баксов... Ну и хиленький пентиум для полного счастья... Я при пробах пользовал (с нулевыми познаниями в PHP, CGI и пр.) бесплатную утилиту "Small HTTP Server " - всего 17 кБ !!! И простейший консольный обработчик HTTP CGI запросов на дельфях...
|
|
|
|
|
Aug 25 2006, 05:05
|
Группа: Новичок
Сообщений: 8
Регистрация: 23-08-06
Пользователь №: 19 755

|
2Yuri_Rus
Ну, гипертерминал наверное сигналы RTS,CTS поднимает, у вас управление потоком - аппартное в гипере стоит ?.
2 goodwin. О! Верным путём идёте товарищ.
Про IP почему сказал. Ну вы взяли себе выделенку, а провайдер возми, да поменяй пул IP адресов. Делают они так, не часто но бывает. Так-что если по IP - лучше иметь 1 сервак + 2 прозрачных редиректора на других провайдерах. Чтобы было время свои железки на новый IP перешить.
А GPRS модемы у меня всегда были только в виде мобил Siemens. Там такого счастья не было. APN задать - да, РРР - не видел. Всё-же я себе слабо представляю, как модем САМ! строит IP пакеты из сырого потока данных и рассылает их со всеми верными полями в заголовке + режет поток данных по частям. А потом обратно раскручивает. Как-то реализовывал РРР на ISDN, очень муторное занятие. Очень.
Сообщение отредактировал Shadow_ru - Aug 25 2006, 05:07
|
|
|
|
|
Aug 25 2006, 05:40
|

Гуру
     
Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244

|
Цитата(GetSmart @ Aug 25 2006, 01:46)  IP-адрес . . . . . . . . . . . . : 172.16.45.190 Маска подсети . . . . . . . . . . : 255.255.255.255 Основной шлюз . . . . . . . . . . : 172.16.45.190 Ну вот - обычное дело - грамотно построенная сеть (можете мои предыдущие посты перечитать), резюме: 1. Выдан приватный адрес для подсетей класса "B" - из глобального интернета не зайдете. 2. Для Вас создана своя локальныая сеть из одного компьютера - "соседи" - за бетонной стенкой.
--------------------
Feci, quod potui, faciant meliora potentes
|
|
|
|
|
Aug 25 2006, 11:48
|

Местный
  
Группа: Свой
Сообщений: 481
Регистрация: 1-08-05
Пользователь №: 7 267

|
Цитата(zltigo @ Aug 25 2006, 08:40)  Цитата(GetSmart @ Aug 25 2006, 01:46)  IP-адрес . . . . . . . . . . . . : 172.16.45.190 Маска подсети . . . . . . . . . . : 255.255.255.255 Основной шлюз . . . . . . . . . . : 172.16.45.190
Ну вот - обычное дело - грамотно построенная сеть (можете мои предыдущие посты перечитать), резюме: 1. Выдан приватный адрес для подсетей класса "B" - из глобального интернета не зайдете. 2. Для Вас создана своя локальныая сеть из одного компьютера - "соседи" - за бетонной стенкой. Увы, для пчелайна необычное  Пытался звонить - разводят руками - ничего не можем(не хотим?) сделать... Они видимо заинтересованы, чтобы в подсетке был постоянный трафик. Короче раздолье для служб мастдая/вирусни...
|
|
|
|
|
  |
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0
|
|
|