Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Передача данных между 2 GPRS модемами
Форум разработчиков электроники ELECTRONIX.ru > Интерфейсы > Форумы по интерфейсам > Сотовая связь и ее приложения
Страницы: 1, 2, 3
Yuriy_Rus
Хотя можете поставить свой собственный абсолютно автономный не завязанный на общий систему
DNS сервер и сообщив _его_ конкретный IP адрес в Никакрагуа, при условии сброса кэша на никарагуанской машине перед каждым сеансом - получите результат.
[/quote]

Это реально? Или за...бистое занятие? glare.gif
zltigo
Цитата(Yuriy_Rus @ Jul 27 2006, 14:58) *
Может у кого другие идеи на счёт алгоритма есть?

Что за пляски с бубном я не понял совсем :-(
Хотели канал с IP протоколом, так и пользуйте.
Берем примитивный вариант, который потом можете совершенствовать под динамическое выделение ресурсов и удобную идентификацию.
Пишем "сервер" на котором активизируем 16 сокетов на порты xxx01...xx16.
Каждый из внешних девайсов коннектируется к своему порту и посылает серверу пакетик в которм просит его соединить с девайсом подсоединонным к другому указанному порту. Сервак или соединяет
если тот девайc подключен и тупо пересылая фреймы организует прозрачнейший канал, либо сообщает об отсутствии партнера, либо буферирует фреймы для последующей передачи, либо активизирует
процедуру вызова партнера на связь.. В общем по вкусу и возможностям.

Если нужно динамическое выделение ресурсов, адресация, паролирование, то тогда для сервера
пишется служба при присоединении к которй объект идеттифицируется по имени-паролю и ему выдается
динамически выдается порт для дальнейшей работы в этом сеансе связи.





Цитата(Yuriy_Rus @ Jul 27 2006, 15:10) *
Это реально? Или за...бистое занятие? glare.gif

Совершенно банальный сервис. Проблемы нулевые.
Yuriy_Rus
Что - то стрёмно. Держать открытым сокет для каждого нового девайса.
Хотя, что эффективнее, надо подумать. Я в Socket API новичок.
GetSmart
По-моему тут кое-кто кое-что не понял.

Допустим есть провайдер, предоставляющий dialup. За ним глобально зарегистрированы допустим сотня айпишников. Если я звоню правайдеру и лезу в сеть, то он даёт мне один из этих айпи на время и я пока сижу на телефоне его имею. То есть нигде их в рилтайме регистрить не надо. Они уже зарегистрированы, закэшированы и оплачены. Короче говоря, в GPRS может быть такая же система, а может быть так, как молвит zltigo. Кто поставит експеримент, тот и узнает.
zltigo
Цитата(Yuriy_Rus @ Jul 27 2006, 16:29) *
Что - то стрёмно. Держать открытым сокет для каждого нового девайса.

Абсолютно ничего стремного, кроме того можете, как я писал держать только один на всех для
авторизации и динамческого выделения/открытия рабочих.

Цитата
Кто поставит експеримент, тот и узнает.

Эксперимент по отношению к конкретному оператору ставится безумно легко любым, кто имеет доступ к GPRS с телефона - просто выходите через своего любимого провайдера в интернет и смотрите выданный IP.
Он будет почти наверняка из диапазона 10.0.0.0 ... 10.255.255.255
Или другой (менее вероятно) private сети. О приватном диапазоне в каждом из классов сетей
можете справиться в RFC1918. Глобальные и фиксированные адреса общепринято выдавать за отдельную абонентскую плату.
Все выше написанное не есть предположения, а опыт.
kuguar
могу предложить следующий вариант - ты говорил что неудобно постоянно долбится на сервер за своей информацией. а что мешает повесить к серверу еще один модем на CSD. У сервера появилась инфа для модема xxx, он звонит по CSD на него (тот трубу не берет а определяет что это сервер) и отсоединяется. Модем , зная реальный айпи сервера соединяется, представляется , и сервер вываливает ему информацию. Что мы имеем - соединение , за которе платится деньги, только в случае если есть информация.
GetSmart
Гениально! smile.gif

Не, сурьёзно smile.gif

kuguar зарабатывает 10 гринов.
Chupakabra
Цитата(GetSmart @ Jul 27 2006, 20:36) *
Гениально! smile.gif

Не, сурьёзно smile.gif

kuguar зарабатывает 10 гринов.


Быстродействие такой системы удовлетворяет ? smile.gif)

Вся обсуждаемая "мутотень" предпологала довольно оперативный обмен информацией, а тут получается "але барышня" smile.gif

А под это дело у опсоса нельзя арендовать реальные IP просто. У мтс помоему такое есть. Да и опсоса думаю есть шанс подобрать специально ?
GetSmart
Дак конечно, коннект напрямую был бы идеальным вариантом. Но ведь тут некоторые так правдоподобно говорят, что это невозможно. А если всё-таки соединяться через сервак, то вариант kuguar'а идеальней всего. Тем более, что абонентов может быть немеряно.
Chupakabra
Цитата(GetSmart @ Jul 27 2006, 21:45) *
Дак конечно, коннект напрямую был бы идеальным вариантом. Но ведь тут некоторые так правдоподобно говорят, что это невозможно. А если всё-таки соединяться через сервак, то вариант kuguar'а идеальней всего. Тем более, что абонентов может быть немеряно.


Чем "немеренней" абонентов, тем менее оперативный обмен будет по архитектуре kuguara. Но вариант вобще достойный (для дешевой системы) a14.gif
zltigo
Цитата(kuguar @ Jul 27 2006, 18:31) *
могу предложить следующий вариант - ты говорил что неудобно постоянно долбится на сервер за своей информацией.

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

могу предложить следующий вариант - ты говорил что неудобно постоянно долбится на сервер за своей информацией.

Кто-нибудь ответит, зачем "долбится", если установив канал можно держать его "вечно" и переданная
информация "сама" прилетит. При развале - переустановить.
Или это какие-то Российские гримасы, типа платы за время GPRS соединения а не за трафик на такое поведение толкают?


И это вариант хороший. Однако, программная реализация всех эти планов заставляет задуматься.
Держать на серваке несколько модемов.
Держать несколько "установленных каналов".
Организовывать пересыл сообщений по этой куче каналов.
Подскажи, пожалуйста, (хотя бы вообщем) как енто воплотить в жизнь программно.
zltigo
Цитата(Yuriy_Rus @ Jul 28 2006, 07:54) *
Держать несколько "установленных каналов".
Организовывать пересыл сообщений по этой куче каналов.
Подскажи, пожалуйста, (хотя бы вообщем) как енто воплотить в жизнь программно.

Если речь иде не об embedded решении для сервера, то абсолютно любая
операционка Win-Linux-..... На которой запушена описанная ранее функция реализованная
на штатном интерфейсе BSD совместимых sockets.
Yuriy_Rus
Цитата(zltigo @ Jul 28 2006, 10:27) *
Цитата(Yuriy_Rus @ Jul 28 2006, 07:54) *

Держать несколько "установленных каналов".
Организовывать пересыл сообщений по этой куче каналов.
Подскажи, пожалуйста, (хотя бы вообщем) как енто воплотить в жизнь программно.

Если речь иде не об embedded решении для сервера, то абсолютно любая
операционка Win-Linux-..... На которой запушена описанная ранее функция реализованная
на штатном интерфейсе BSD совместимых sockets.


Нет сейчас хочу замутить сервак на Си в Винде (чтобы с алгоритмом разобраться, проблемы реализации порешать, проверить как оно всё работает, отладить и сделать как можно эффективнее). Я просто енто лучше всего знаю. А затем буду преобразовывать под BSD.
zltigo
Цитата(Yuriy_Rus @ Jul 28 2006, 09:37) *
Нет сейчас хочу замутить сервак на Си в Винде (чтобы с алгоритмом разобраться, проблемы реализации порешать, проверить как оно всё работает, отладить и сделать как можно эффективнее). Я просто енто лучше всего знаю. А затем буду преобразовывать под BSD.

А разница при портировании будет минимальнейшая, особенно если WIN расширений sockets не пихать без всякой на то надобности.
Yuriy_Rus
Цитата(zltigo @ Jul 28 2006, 10:44) *
А разница при портировании будет минимальнейшая, особенно если WIN расширений sockets не пихать без всякой на то надобности.


Тем более тестовый вариант буду делать в Винде на Си.
Так что с реализацией как программно замутить несколько активных каналов?
zltigo
Цитата(Yuriy_Rus @ Jul 28 2006, 10:25) *
Так что с реализацией как программно замутить несколько активных каналов?

??? А как один - понятно? Тогда сделайте это столько раз, сколько нужно...

Можете почитать для затравки исходники чего-либо простого, например, TFTP сервера.
Там уже будет соединение с выделенным портом, сообщение "чего хочу", достижение "консенсуса"
и по достижении оного выделение личного сокета для последующей работы. Останется только выбросить протокол пересылки файла заменив его пересылкой между подключившимися клиентами.
Yuriy_Rus
Цитата(zltigo @ Jul 28 2006, 11:42) *
Цитата(Yuriy_Rus @ Jul 28 2006, 10:25) *

Так что с реализацией как программно замутить несколько активных каналов?

??? А как один - понятно? Тогда сделайте это столько раз, сколько нужно...


Смысле в единичный момент времени будет только 1 канал между 2 девайсами?
Или можно сделать несколько активных каналов? Если да, то как?
zltigo
Цитата(Yuriy_Rus @ Jul 28 2006, 10:53) *
Или можно сделать несколько активных каналов? Если да, то как?

ТАК-ЖЕ КАК И ОДИН, НО НЕСКОЛЬКО РАЗ.
Yuriy_Rus
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(cool.gif;

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);
}
}
}
}

//-------------------------------------------------------------------------------------------------------------------
Вот общий каркас сервака с одни рабочим сокетом, к которому все цепляются, делают своё "чёрное дело" и отцепляются.
Как он (сервер) будет держать несколько сокетов и несколько девайсов на них?
Как будет организовываться пересыл данных между девайсами на разных сокетах?
Как будет оганизовано пересыл между несколькими парами устройств? glare.gif
zltigo
Цитата(Yuriy_Rus @ Jul 28 2006, 11:24) *
Вот общий каркас сервака с одни рабочим сокетом, к которому все цепляются, делают своё "чёрное
дело" и отцепляются.

Извините, не стал читать, или как принято сейчас выражаться "ниасалил" :-)
Цитата
Как он (сервер) будет держать несколько сокетов и несколько девайсов на них?

Может Вы не понимаете, что сокетов может быть открыто по числу ПОРТОВ на стороне сервера?
Или я тогда вообще НИЧЕГО не понимаю, чего Вы не понимаете :-(
Цитата
Как будет организовываться пересыл данных между девайсами на разных сокетах?

Вычитали содержимое из одного сокета и тупо запихнули его в другой.
Цитата
Как будет оганизовано пересыл между несколькими парами устройств? glare.gif

А чем "это" отличается от пересылки между одной парой?
Проблема схожая с открытием второго сокета?

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

Не подскажите где можно найти эти исходники на Си. wink.gif
zltigo
Цитата(Yuriy_Rus @ Jul 28 2006, 12:08) *
Не подскажите где можно найти эти исходники на Си. wink.gif

Линуксовые приблуды - самый очевидный источник.
Самый простой поиск в интерненте по "TFTP server sources"...
bullit
to Yuriy_Rus

Может это тебе поможет: http://electronix.ru/forum/index.php?showtopic=18634 - второй пост, прикрепленный файл. Только там про реализацию, а не про программу, но тоже думаю поможет.
zltigo
Цитата
Как ни странно Free Talks


Может не стои повторять ошибку?
Yuriy_Rus
Цитата(zltigo @ Jul 30 2006, 21:42) *
Цитата

Как ни странно Free Talks


Может не стои повторять ошибку?

Господа вы это о чём?

На счёт системы пересыла данными.
Я на днях снова вернулся к рассмотрению данного вопроса, и меня можно сказать осинило.
ОпСоСы уже давно реализовали данную проблему - ММС сообщения. Это и есть данные, которые пересылаются между GPRS модемами. И насколько меня информировали они это делают через свой сервер (не напрямую между телефонами). smile.gif

Но что я сомневаюсь, что они на своём сервере держат новый сокет под каждую трубу, вышедшую в GPRS или всё так и есть? Если нет расскажите мне, пожалуйста про схему, которую используют ОпСоСы.

Ещё один момент, zltigo предлагал схему, в которой модемы постоянно висят в GPRS. Но я тут опять пораскинул всем, чем есть, и осознал что если телефон долгое время не активен в сети, то его банально обрубают, т. е. нужен "постоянный" трафик. Временной интервал у разных ОпСоСов, насколько мне известно разный, думаю примерно 10-15 минут (экмпериментов не ставил, если кто-то ставил сообщите, пожалуйста). А организовывать постоянный трафик не хочется, тем более, что это маленькие, но всё же деньги.
Товарищ zltigo, вы что думаете по этому поводу?
zltigo
Цитата(Yuriy_Rus @ Aug 1 2006, 14:14) *
Господа вы это о чём?

О неудачном первоначальном выборе Вами раздела для своего сообщения.

Цитата
И насколько меня информировали они это делают через свой сервер (не напрямую между телефонами). smile.gif

Естественно.
Цитата
Но что я сомневаюсь, что они на своём сервере держат новый сокет под каждую трубу, вышедшую в GPRS или всё так и есть?

На время процесса передачи да. В вашем случае речь шла о КАНАЛЕ, что есть совсем другое, нежели
обмен сообщениями. Если Вас устраивает обмен сообщениями - SMS и MMS в Вашем полном распоряжении.

Цитата
осознал что если телефон долгое время не активен в сети, то его банально обрубают, т. е. нужен "постоянный" трафик.

За что это вдруг? Провайдерский произвол? Кстати, обычно существует и плата за соединение. Учтите.
Yuriy_Rus
Цитата(zltigo @ Aug 1 2006, 16:02) *
Провайдерский произвол?


Да, РОССИЯ одним словом.
Хотя в рамках решения данной задачи, думаю, надо произвести испытания на этот счёт Мегафона, МТС и ПчелинойЛинии хватит.
Yuriy_Rus
При всём при том, что ММС и есть яркий пример, обмена информацией между сервером ОпСоСа(интернетом) и абонентом(трубой) по GPRS каналу. Т. е. там вроде(сам не пробовал, а надо бы)
такая система: сервак отправляет СМС трубе, мол для тебя есть ММС. Тот принимает решение качать или не качать. Если качать, то труба выходит в GPRS, получает свой дин. IP и лезит на сервер за своей ММС, а сервак отправляет.

Никто не знает енто всё так и есть?
Yuriy_Rus
to zltigo

Не подскажете это имелось в виду передача данных по GSM или нет. wink.gif
//--------------------------------------------------------------------------------------------
Ярежим передачи данных. Вот АТ команды:

at+cbst=7(9600 скорость),0,0(или 0(авто),0,0) - скорость, прозрачность, сжатие
at+fclass=0 - режим передачи данных
atd<номер телефона>

ждем около 15 сек соединение, т.е. ответ CONNECT <speed> и через пару сек отправляем че хотим.

А приемник только получает и нечего там настраивать не надо.

Так соединяются два модема. Может даже конференц связь
//--------------------------------------------------------------------------------------------
zltigo
Цитата(Yuriy_Rus @ Aug 1 2006, 16:50) *
Не подскажете это имелось в виду передача данных по GSM или нет. wink.gif

Улыбки не понял. Это не GPRS.
Если устраивает оплачивать время по тарифам речевого соединеия - используйте.
Скорость обычно 9600. Некоторые првайдеры при хорошем канале разрешают занимать до 14400 из общей GSM полосы 19200. Для входящего модемного звонка требуется обычно отдельный номер за
дополнительную плату. Есть еще у некоторых провадеров HSCSD c занятием нескольких каналов там
уже десятки килобит.
Yuriy_Rus
Сейчас занимаюсь отладкой написанной системы клиент-сервер-клиент.
Всё построено на Socket API.
Не могу разобраться с одним касяком:
После recv на сервере просматриваю принятый буфер, а он пустой!?
Коннект клиента к серваку проходит точно.
В чём может заключпться ошибка работы этой функции?
recv(soc, RecieveBuf, D_BufLength, 0)
Shadow_ru
По поводу сокетов на сервере :

1 Listening сокет и всё. Зачем изобретать лисапеды ?
Yuriy_Rus - асинхронные сокеты вы будете долго осиливать, ей богу.
Ставим Апач + cgi, либо Томсат. Пользуем HTTP протокол.
В данной конфигурации - самое оно, плюс имеет уже отлаженые либы.

По поводу ММС имею сказать следующее.

Оператор присылает мобиле Push WAP сообщение по SMS каналу, в котором находится URL, на который необходимо обратиться.
Мобила поднимает GPRS канал и по HTTP(sic!) каналу лезет за информацией.
Yuriy_Rus
Цитата(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 авторизацию?
kuguar
я думаю что это уже уровень другой- авторизация - по OSI - уровень приложения. Поищи в инете описание протокола авторизации PAP, почитай http://old.osp.ru/pcworld/2001/04/151.htm , http://www.protocols.ru/modules.php?name=C...age&pid=139 и RFC1334.
Shadow_ru
РАР авторизацию - проводит стек IP/PPP дров , по крайней мере в Винде/Линуксах так.
Shadow_ru
Yuriy_Rus, почитал тут ваши посты.
Вы желаете провести поднятие РРР соединения и авторизацию модемом?
Если честно, никогда не слышал о такой гайке.
Знаете почему ?
1) РРР - УНИВЕРСАЛЬНЫЙ протокол. И реализуется соответсвенно на кочнечных устройствах, а не на средствах передачи данных.
2) Потому, что в момент установления РРР соединения там ещё проходят LСP пакеты, которыми задётся ваш личный IP адрес, плюс могут указываться DNS. И что с этими пакетами будет делать модем ?
Сохранить в угол, а потом клеить в заголовки IP пакетов ?
P.S. И ещё вопрос - каким образом в ваших оконечках будет храниться адрес сервера. Неужели в виде IP адреса?
Yuriy_Rus
Цитата(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, а не на модемах.
Yuriy_Rus
Ещй вопрос по программированию COM.
Какая-то лажа...
При запуске компа я запускаю свою прогу и через неё по СОМ пытаюся получить или передать данные - Ничерта, всё виснет.
Затем пускаю гипертерминал, ввожу там команду, закрываю его, снова запускаю прогу, и уже всё Ок, данные отправляються и передаются.
Подозреваю, что всё дело в настройках СОМ-порта. Но я вроде всё, что надо для модема в проге учитываю и в DCB всё запихиваю (скорость, чётность, биты данных, стоповые биты, управление потоком).
GetSmart
zltigo
Вот я сейчас с берегов чёрного моря в инете через GPRS выхожу и мой айпишник совсем не похож на тот, который Вы говорили. Это почему?

ЗЫ вот что у меня в аське написано:
External IP=83.149.24.98
Internal IP=172.16.3.121
zltigo
Цитата(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. Вернетесь домой - посмотрите.
GetSmart
zltigo
Не. карточка Мегафоновская и я её здесь местную купил. Так что никакого роуминга нету.

А как узнать реальный (ну или какой другой) айпи? Какой прогой?
zltigo
Цитата(GetSmart @ Aug 25 2006, 01:03) *
zltigo
А как узнать реальный (ну или какой другой) айпи? Какой прогой?

Цитата
ipconfig /all и информацию по GPRS интерфейсу сюда.
zltigo
Цитата(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" класса - спите спокойно,
к Вам никто снаружи не придет :-)
GetSmart
Код
Настройка протокола IP для Windows 2000

        Имя компьютера  . . . . . . . . . : starbob
        Основной DNS суффикс  . . . . . . :
        Тип узла  . . . . . . . . . . . . : Широковещательный
        Включена IP-маршрутизация . . . . : Нет
        Доверенный WINS-сервер  . . . . . : Нет

Адаптер Megafon GPRS:

        DNS суффикс этого подключения . . :
        Описание  . . . . . . . . . . . . : WAN (PPP/SLIP) Interface
        Физический адрес. . . . . . . . . : 00-53-45-00-00-00
        DHCP разрешен . . . . . . . . . . : Нет
        IP-адрес  . . . . . . . . . . . . : 172.16.45.190
        Маска подсети . . . . . . . . . . : 255.255.255.255
        Основной шлюз . . . . . . . . . . : 172.16.45.190
        DNS-серверы . . . . . . . . . . . : 83.149.24.244
                                            62.183.50.230
goodwin
Долгонько тут идет обсуждение очевидного... smile.gif
Тщательно изучал этот вопрос когда-то. Пришел к одному выводу - только выделенный сервер в сети со статическим адресом для обмена. Все остальное - изврат...
И еще: сейчас модем без поддержки IP - раритет... Никаких PPP, LCP, PAP, CHAP реализовывать в своих дивайсай нет смысла - все есть в модемах по $40...
Проще всего GET, PUT на HTTP сервер посредством AT команд... На сервере - обрабатываюший запросы скрипт.
Если объем данных небольшой, то самое выгодное (в России) - сеансное соединение устройств к серверу через пчелайн GPRS, ибо у них первые 5 кБ не тарифицируются... Халява wink.gif
Срочный вызов дивайса для сеанса обмена можно осуществить простым дозвоном с сервера.
Постоянная связь съедает трафик за счет флуда, который постоянно присутствует в приватной сети оператора (правда немного, если не отвечать на ICMP, сканировние DCOM маздая и пр.). В пчелайне в приватной сети - каша...
Поддерживать постоянное соединение невыгодно и еще по одной причине - случайные обрывы, и связанный с этим перерасход трафика (Допустим набежало 10 кБ, обрыв... оператор при этом слупляет тарифный минимум - 49 кБ... И так далее ) Так, что сеанс дешевле в смысле накладныхрасходов.
Надеяться например на то, что пчелайн в Казани и пчелайн в Москве - одна и та-же сеть не стОит - даже с IP вида 172.x.x.x на обеих модемах - это разные подсетки. Проверить легко - при соединении с сервером прописывается IP пчелайновского маршрутизатора - один на всех...
Маршрутизатор некоторое время хранит информацию о соединении - то бишь можно пользовать не только TCP, но и UDP. Пакеты ходят туда и обратно - проверено... (шлем с модема UDP пакет на сервер, потом можно ответить UDP пакетом на IP адрес сотового маршрутизатора - доходит..) Хотя TCP все-таки надежнее.

Вот такие наблюдения...

ЗЫ: Выделенный сервер по нынешним временам не роскошь - обыденность... Например в наших краях сейчас идет акция - ADSL подключение вместе с "проводами до дома" за 300 руб wink.gif Сам модем стОит 27 баксов... Ну и хиленький пентиум для полного счастья... Я при пробах пользовал (с нулевыми познаниями в PHP, CGI и пр.) бесплатную утилиту "Small HTTP Server " - всего 17 кБ !!! И простейший консольный обработчик HTTP CGI запросов на дельфях...
Shadow_ru
2Yuri_Rus

Ну, гипертерминал наверное сигналы RTS,CTS поднимает, у вас управление потоком - аппартное в гипере стоит ?.

2 goodwin.
О! Верным путём идёте товарищ.

Про IP почему сказал. Ну вы взяли себе выделенку, а провайдер возми, да поменяй пул IP адресов. Делают они так, не часто но бывает.
Так-что если по IP - лучше иметь 1 сервак + 2 прозрачных редиректора на других провайдерах.
Чтобы было время свои железки на новый IP перешить.

А GPRS модемы у меня всегда были только в виде мобил Siemens. Там такого счастья не было. APN задать - да, РРР - не видел.
Всё-же я себе слабо представляю, как модем САМ! строит IP пакеты из сырого потока данных и рассылает их со всеми верными полями в заголовке + режет поток данных по частям. А потом обратно раскручивает.
Как-то реализовывал РРР на ISDN, очень муторное занятие. Очень.
zltigo
Цитата(GetSmart @ Aug 25 2006, 01:46) *
IP-адрес . . . . . . . . . . . . : 172.16.45.190
Маска подсети . . . . . . . . . . : 255.255.255.255
Основной шлюз . . . . . . . . . . : 172.16.45.190

Ну вот - обычное дело - грамотно построенная сеть (можете мои предыдущие посты перечитать), резюме:
1. Выдан приватный адрес для подсетей класса "B" - из глобального интернета не зайдете.
2. Для Вас создана своя локальныая сеть из одного компьютера - "соседи" - за бетонной стенкой.
goodwin
Цитата
2 goodwin.
О! Верным путём идёте товарищ.


Уже давно никуда не иду wink.gif

По поводу встроенного сэка можно глянуть : http://www.macro-peterburg.ru/pdf/TCP-IP%2...Note%201.01.pdf
goodwin
Цитата(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. Для Вас создана своя локальныая сеть из одного компьютера - "соседи" - за бетонной стенкой.



Увы, для пчелайна необычное sad.gif
Пытался звонить - разводят руками - ничего не можем(не хотим?) сделать...
Они видимо заинтересованы, чтобы в подсетке был постоянный трафик.
Короче раздолье для служб мастдая/вирусни...
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.