-
14.07.2009, 08:24 #151
- Регистрация
- 03.02.2006
- Возраст
- 51
- Сообщений
- 17,255
- Поблагодарили
- 8060
- Поблагодарил
- 4231
73 de RX4HX, Alexei, http://rx4hx.qrz.ru
Ant.: UW4HW, Pwr.: ~500 Wtts
-
14.07.2009, 08:34 #152
- Регистрация
- 20.04.2005
- Адрес
- Оренбург, Россия
- Возраст
- 59
- Сообщений
- 3,390
- Поблагодарили
- 614
- Поблагодарил
- 119
73 ... R8TX :: Skype: rx9tx_ :: http://r8tx.qrz.ru
-
14.07.2009, 08:35 #153
- Регистрация
- 03.02.2006
- Возраст
- 51
- Сообщений
- 17,255
- Поблагодарили
- 8060
- Поблагодарил
- 4231
Это не крайний случай, это самый правильный случай
Если посмотреть вообще все подобные программы (не обязательно радиолюбительсвие), они все так и сделаны. Самый простой в плане программирования вариант: на сервере в папке с базой размещать файлик с номером версии. Тогда все просто - проверяем номер версии, если новая - предлагаем скачать. Ну или как то так73 de RX4HX, Alexei, http://rx4hx.qrz.ru
Ant.: UW4HW, Pwr.: ~500 Wtts
-
14.07.2009, 08:38 #154
- Регистрация
- 18.09.2007
- Адрес
- Нальчик, Кабардино-Балкария
- Возраст
- 43
- Сообщений
- 1,223
- Поблагодарили
- 209
- Поблагодарил
- 112
Ну я сейчас сделаю с задержкой.
Скажем полсекунды выполняется HTTP запрос, секунду спим.
Т.е. 1000 QSO за 25 минут обработается (примерно). Не строк в логе, а именно QSO без занесенных STATE.
Лишь бы секундная пауза все равно не привела к блокировке IP.
Тоже вариант. Можно комбинировано сделать. Т.е. искать в базе, а если не найдено - то в Интернете. Так запросов куда меньше будет.
Спасибо. Я, в принципе, в теории все это знал, просто на практике не применял, хотя с сокетами работал.
Для меня один вопрос только - как сервер узнает, что я окончательно передал запрос? Что в конце передавать?
ОК. Не проблема.
ОК. Пока оставим.
Ну да. Я так и хотел. Некорректные RDA с 4-мя символами или типа KB-?? будем игнорировать, а брать первый корректный.
Просто я сразу не заметил, что в rda.xls есть некорректные записи.
Добавлено через 4 минуты
Только вот вопрос.
Как пополнять эту самую базу?
Конвертировать мне xls с сайта Романа не проблема.
Но ведь он (файл) не каждый день обновляется.
В общем тут поле для деятельности широкое.Последний раз редактировалось RA6XTD; 14.07.2009 в 08:42. Причина: Добавлено сообщение
-
14.07.2009, 08:46 #155
- Регистрация
- 20.04.2005
- Адрес
- Оренбург, Россия
- Возраст
- 59
- Сообщений
- 3,390
- Поблагодарили
- 614
- Поблагодарил
- 119
73 ... R8TX :: Skype: rx9tx_ :: http://r8tx.qrz.ru
-
14.07.2009, 08:56 #156
- Регистрация
- 03.02.2006
- Возраст
- 51
- Сообщений
- 17,255
- Поблагодарили
- 8060
- Поблагодарил
- 4231
Мне представляется такой вариант:
1. В архиве программы вообще по началу никакой базы нет.
2. При первом запуске скачиваем с сайта RX3RC файлик xls и конвертируем его в mdb.
3. Далее запоминаем дату или размер файлика.
4. При наличии галочки "автоматическое обновление" при каждом запуске проверяем на новую версию. (Сравнивая дату или размер файла на сервере.)
5. Если пользователь ответил ДА на предложение обновить - идем пункт 2.
Мне кажется так самое простое.
Добавлено через 11 минут
Единственное только что:
файлик с районами заархивирован - т.е. необходимо, чтобы у пользователя WinRAR стоял - что как бы не верно. Файлик в формате Экселя - то есть для конвертации еще и Эксель нужен - что еще более неверно. Наверно самое простое попросить выкладивать на сайте файлик в обычном текстовом формате - самое простое!Последний раз редактировалось RX4HX; 14.07.2009 в 09:08. Причина: Добавлено сообщение
73 de RX4HX, Alexei, http://rx4hx.qrz.ru
Ant.: UW4HW, Pwr.: ~500 Wtts
-
14.07.2009, 09:11 #157
- Регистрация
- 20.04.2005
- Адрес
- Оренбург, Россия
- Возраст
- 59
- Сообщений
- 3,390
- Поблагодарили
- 614
- Поблагодарил
- 119
Поэтому лучше все это делать на стороне RA6XTD. Вот так: "конвертилку писать, чтобы она у Романа xls забирала, конверттила в mdb и сама заливала к Вам на сайт". А на стороне пользователя только проверяется наличие более свежей базы у RA6XTD и при необходимости эта база скачивается. Или можно все это делать прямо на сайте RDA, чтобы Маскима не грузить.
Последний раз редактировалось R8TX; 14.07.2009 в 09:15.
73 ... R8TX :: Skype: rx9tx_ :: http://r8tx.qrz.ru
-
14.07.2009, 09:14 #158
- Регистрация
- 03.02.2006
- Возраст
- 51
- Сообщений
- 17,255
- Поблагодарили
- 8060
- Поблагодарил
- 4231
Последний раз редактировалось RX4HX; 14.07.2009 в 09:16. Причина: Добавлено сообщение
73 de RX4HX, Alexei, http://rx4hx.qrz.ru
Ant.: UW4HW, Pwr.: ~500 Wtts
-
14.07.2009, 09:25 #159
- Регистрация
- 20.04.2005
- Адрес
- Оренбург, Россия
- Возраст
- 59
- Сообщений
- 3,390
- Поблагодарили
- 614
- Поблагодарил
- 119
73 ... R8TX :: Skype: rx9tx_ :: http://r8tx.qrz.ru
-
14.07.2009, 09:26 #160
- Регистрация
- 12.12.2006
- Адрес
- Ростов-на-Дону
- Возраст
- 56
- Сообщений
- 354
- Поблагодарили
- 44
- Поблагодарил
- 46
Не подумайте, что это я Вас пытался учить. Это я пытался объяснить RX9TX, почему не получиться его вариант.
Попробовал делать задержку запросов 5 сек. Список сделал небольшим - 233 записи. Весь список был получен без проблем. Попробовал сделать задержку 1 секунда. Список был запрошен без проблем. Тоесть для выравнивания баз, этот метод подходит. Только долгим будет.
А в конце передавать зависит от запроса.
Вот мой кусок кода с запросом
// Этот заголовок постоянен
char PRDzag[1024] = {
"POST /rda/rdasearch.php HTTP/1.1\r\n"
"Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shockwave-flash, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, */*\r\n"
"Referer: http://www2.dxsoft.com/rda/rdasearch.php\r\n"
"Accept-Language: ru\r\n"
"Content-Type: application/x-www-form-urlencoded\r\n"
"User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; MRA 5.2 (build 02405); MRSPUTNIK 2, 0, 1, 31 SW; .NET CLR 2.0.50727)\r\n"
"Host: www2.dxsoft.com\r\n"
"Content-Length: 14\r\n"
"Connection: Keep-Alive\r\n"
"Cache-Control: no-cache\r\n"
"\r\n"
};
// Непосредственно функция запроса
int SendInquiry(char *call)
{
char str[256];
if(statusInt!=9) return 0;// Если соединение TCP не установлено - Выход
// Сначала передаем заголовок
send(cli_socket,(const char FAR *)PRDzag, strlen(PRDzag),0);
// Теперь формируем строку, где указывается позывной
sprintf(str,"callsign=%s\r\n",call);
// И передаем серверу
send(cli_socket,(const char FAR *)str, strlen(str),0);
// как только сервер ее получит, начнет отвечать
// как ответит, сам закроет соединение
return 1;
}
А если запрашивать позывные по РДА то выдаваемый список больше. В принципе, перебрать все РДА будет быстрее, чем перебрать все позывные ну а потом уже на локальном уровне создать список от обратногоПоследний раз редактировалось RN6LIQ; 14.07.2009 в 09:31.
-
14.07.2009, 09:31 #161
- Регистрация
- 07.02.2007
- Сообщений
- 1,200
- Поблагодарили
- 440
- Поблагодарил
- 33
-
14.07.2009, 09:36 #162
-
14.07.2009, 10:02 #163
- Регистрация
- 19.09.2005
- Адрес
- Новосибирск
- Возраст
- 59
- Сообщений
- 231
- Поблагодарили
- 64
- Поблагодарил
- 3
Онлайн-база хостится на нашем резервном сервере, www2.dxsoft.com, он же www.hamport.com.
Это обычный shared hosting за $9.95/месяц, так что ждать от него чудес производительности - наивно
Желающие могут проспонсировать RDA-team выделенным сервером в десять раз дороже
-
14.07.2009, 10:15 #164
- Регистрация
- 20.04.2005
- Адрес
- Оренбург, Россия
- Возраст
- 59
- Сообщений
- 3,390
- Поблагодарили
- 614
- Поблагодарил
- 119
73 ... R8TX :: Skype: rx9tx_ :: http://r8tx.qrz.ru
-
14.07.2009, 10:19 #165
- Регистрация
- 03.02.2006
- Возраст
- 51
- Сообщений
- 17,255
- Поблагодарили
- 8060
- Поблагодарил
- 4231
Будем просить Романа выкладывать текстовую версию базы данных по РДА!
А на счет онлайн запроса - это сразу было понятно, что этим закончится...73 de RX4HX, Alexei, http://rx4hx.qrz.ru
Ant.: UW4HW, Pwr.: ~500 Wtts
Социальные закладки