WWW.DOCX.LIB-I.RU
БЕСПЛАТНАЯ  ИНТЕРНЕТ  БИБЛИОТЕКА - Интернет материалы
 

«FtpSync. Описание протоколов. Отправка SMS сообщений. FileToSms. Проверка и настройка модема Открывается COM порт с параметрами 115200-8-NOPARITY-1STOPBIT. Устанавливаются ...»

FtpSync.

Описание протоколов.

Отправка SMS сообщений. FileToSms.

Проверка и настройка модема

Открывается COM порт с параметрами 115200-8-NOPARITY-1STOPBIT.

Устанавливаются таймауты RIT=10, RTTM=100, RTTC=10, WTTM=50, WTTC=5000.

Команда: "AT+CMEE=1\r\n"

Ответ: ”AT+CMEE=1OK” (не проверяется)

Команда: “AT+CSMS=0\r\n”

Ответ: “AT+CSMS=0\r\n\r\n+CSMS: 1,1,1\r\n\r\nOK”

Проверка OK в строке.

Команда: "AT+CMGF=0\r\n"

Ответ: AT+CMGF=0\r\n\r\nOK\r\n

Проверка ОК в строке

Отправка сообщения

M – длина SMS сообшения. Не более 70 символов.

L = 13 + M*2;

Команда “AT+CMGS=” + itoa(L) + “\r”;

Ответ: “AT+CMGS=19\r\r\n> ”

PN – номер телефона. 11 символов: 74951112233. (без плюса)

В конец добавляется символ F, затем чётные и нечётные символы меняются местами: PN = 4759112132F3.

XL = M*2 в 16-ричном представлении (%02X).

TEXT тело SMS сообщения. Каждый символ преобразуется в 4 hex символа (%04X)

Команда: “0001000b91” + PN + “0008” + XL + TEXT + 0x1A

Ответ: “\r\n+CMGS: 154\r\n\r\nOKF4000806003100320033”

Проверка OK в строке.

Загрузка файлов с FTP. FtpToFile.

Подключение к серверу.

Задаётся:

HOSTNAME : IP адрес или имя севера

Режим: Пассивный/Активный

USERNAME: Имя пользователя

PWD: пароль

PORT: номер порта (21)

Количество попыток соединения (5)

При подключении указывается ai_family = AF_INET, ai_socktype = SOCK_STREAM.

После подключения ждём ответ от сервера.

Ответ может содержать несколько строк, например:

220 Gene6 FTP Server v3.9.0 (Build 2) ready…\r\n

421 Connection closed, timed out.\r\n

Нужен код в последней строке

Код 220=OK.

Если код 120 пишем сервер временно не доступенЛогин.

Если USERNAME не задан пишем "USER anonymous\r\n"

Если задан вместо anonymous подставляем USERNAME.

Отправляем строку с помощью sendto.

Получаем “331 Password required for USERNAME.\r\n”

Если код 230 всё нормально пароля не надо

Если код 331 или 332 посылаем команду

“PASS PWD\r\n”

Получаем “230 User USERNAME logged in.”

Если получили код 230 или 202 залогинились иначе пишем ошибка авторизации.

Проверка поддержки докачки.

Отправляем: “REST 0\r\n”

Получаем 350 Restarting at 0. Send STORE or RETRIEVE.

Проверяем что 350.

Перекачка

Устанавливаем двоичный тип обмена “TYPE I\r\n”

200 Type set to I.

Проверяем есть ли временный файл. Для этого читаем его размер.

SIZE FILENAME.ftpsync\r\n

550 No such file.

Если код 213 то вытаскиваем из строки и возвращаем размер файла.

Иначе возвращаем ошибку

Начинаем загрузку.

Снова TYPE I\r\n

ЕСЛИ НЕ ПАССИВНЫЙ РЕЖИМ ВЫБИРАЕМ ПОРТ.

Генерируем случайный порт и затем посылаем команду

PORT 127,0,0,1,22,29\r\n

где 22 и 29 старший и младший байты порта.

Получаем

200 Port command successful.

Ставим позицию закачки

REST POS\r\n

POS = 0 если временного файла не существует (см. выше) или разности размеров временного файла и закачиваемого файла?

Создаём новый сокет с флагами ai_flags = AI_PASSIVE | AI_NUMERICHOST.

Bind к полученному порту.

Затем listen если сервер подконнектился всё OK.





Запускаем поток listen от сервера и

Выдаём команду

Указываем имя временного файла FILENAME.ftpsync

RETR FILENAME.ftpsync\r\n

Получаем

150 Opening data connection for FILENAME.ftpsync (3 bytes).

Если код 125, 150, 226, 250 значит OK.

Читаем из сокета.

По окончании получаем

226 File sent ok.

Если 226 или 250 всё OK.

Для завершения связи с сервером шлём

“ABOR\r\n”

“QUIT\r\n”

При скачке файлов проверяем наличие временного файла на диске (.ftpsync) если есть и стоит флаг bPauseResume получаем его длину для того чтобы определить сколько уже закачано.

К имени файла на сервере дописываем.ftpsync. пытаемся получить длину этого файла. Если он есть и длина меньше чем длина.ftpsync на сервере то сбрасываем позицию в 0.

Выбираем случайный сокет ds и посылаем серверу команду PORT с IP адресом и номером этого нового порта. Затем посылаем команду REST в которой указываем с какой позиции качать.

Создаём новый сокет data и bind его к ds.

Вызываем listen(data) и если ftp сервер коннектится то OK.

Запускаем поток UploadFileListener в котором

Ждём поступления данных в data.

Данные пришли sr = accept(data);

Переводим sr в Nonblocking mode.

Ждём pEvent->m_hObject. Затем закрываем sr.

Переименовываем файл на сервере в.ftpsync

Получаем размер переименованного файла.




Похожие работы:

«ПРОЕКТ САЙТА ВОЕННЫХ НОВОСТЕЙ "ВОЙНА-UA" Предпосылки и целевая аудитория: Сайт имеет широкую целевую аудиторию. В рамках информационного мейнстрима тема новостей из зоны боевых действий наиболее популярна и является основным полем антироссийской пропаганды. Украинские СМИ акти...»

«Метод синектики9 класс Тема урока: Добро и зло.Цели урока:1.Сформировать у учащихся представление о добре и зле как этических категориях. Дать понятие, что такое мораль, морально-нравственные ценности.2.Развивать аналитическое мышление, умения раскрывать различные значения понят...»

«Цифровой термометр SH-144ФУНКЦИИ: * Сигнализация высокой/низкой температуры вне помещения * Запоминание максимальной/минимальной температуры * Измерение температуры в помещении и вне помещения * Измерение по шкале Цельсия (С) и Фаренгейта (F) * Большой и четкий цифровой дисплей * Водонепроницаемый сенсор для испол...»

«Статья 24. Отсрочка от призыва граждан на военную службу1. Отсрочка от призыва на военную службу предоставляется гражданам:а) признанным в установленном настоящим Федеральным законом порядке временно не годными к военной службе по состоянию здоровь...»

«Мирча Элиаде \Священное и мирское\ Мирча Элиаде "Священное и мирское" ГЛАВА II СВЯЩЕННОЕ ВРЕМЯ И МИФЫ Мирское течение времени и Священное время Равно как и пространство, Время для религиозного человека не однородно и не беспрерывно. Есть периоды Священного Времени....»

«6 класс Тема: Man and the world GrammarUSE THE REQUIRED FORM:1. If it, we won't go to the park.a) will rainb) rainsc) will not raind) doesn’t rain2. You won't pass the exam, you work hard.a) ifb) whenc) unlessd) as soon as3.When we_ ready, I...»

«СООБЩЕНИЕ Территориальная избирательная комиссия Завьяловского района в соответствии с частью 9 статьи 23 Закона Удмуртской Республики "О выборах депутатов представительных органов поселений в Удмуртской Республике" информирует о выдвинутых кандидатах в депутаты представи...»

«ИТОГОВАЯ КОНТРОЛЬНАЯ РАБОТА 4 КЛАССВАРИАНТ IВыбери нужное слово: The 1st of September isn’t the (longest/ long) day. The mouse is (smaller/ smallest) than the cat. It is a very (funny/ funniest) English book. He is a (nicest/ nice) boy. Заполни пропуски словами: i...»

«Программы МИНСК1.1 Новый год в Минске, 3 дня31 декабря -2 января Беларусь*** г. Минск Минск Дудутки Мир Несвиж 13 950 рос. руб. 412,00 бел. руб.1.2 Новый год в Минске, 4 дня31 декабря 3 января Беларусь*** г. Минск Минск Дудутки Березин...»







 
2017 www.docx.lib-i.ru - «Бесплатная электронная библиотека - интернет материалы»

Материалы этого сайта размещены для ознакомления, все права принадлежат их авторам.
Если Вы не согласны с тем, что Ваш материал размещён на этом сайте, пожалуйста, напишите нам, мы в течении 1-2 рабочих дней удалим его.