SMS-SENDER. Чиста софт. Кривой.
- windows |
- soft |
- smsserver |
- cpp |
- comandline sms-sender
Где-то с год назад я дожевывал свою идею-фикс о смс-сервере. Не обладая програмистским образованием, методом тыка и вытыка писалась утилита командной строки для отсылки смс через GSM-модем.....
А начиналось все очень мирно - требовалось научить Frendly Pinger слать смс когда падает какая-нибудь кошка... К концу моего терпения получился кусок сырого кода, который работал как сервер и как клиент и уверенно падал когда ему присылали смс в ответ. Потому что изначально планировалась обработка входящих смс, ACL-ы и прочая паранойя...
Сегодня писал к нему сопроводилово. Кусочек выложу здесь. Кому интересно - качайте. Абсолютно бесплатно. Фриваре, так сказать. К сожалению, исходник утрачен, придется все начитать с нюля. Ибо за год забыл то немногое по с++, что вычитал в справке к вижуалохфису. Не придирайтесь к стилю этого словоблудия - для руководства писал :).
Программно-аппаратный комплекс "Флудераст".
Подробное описание.
.ini-файл:
секция [COM]
- все параметры очевидны, ev- четность
number=COM1
baudrate=19200
ev=none
секция [SERVER]
IP=0.0.0.0
Port=89
LogFile=c:\cmd\mysms2.log
- назначение параметров очевидно
PureRun=1
-этот параметр зарезервирован для будущего функционала
секция [RECIPIENTS]
Monster=81234567890
DEFAULT=81234567890
Пары короткое_имя - номер. Использование зарезервировано для будущего функционала.
Короткое имя DEFAULT - ОБЯЗАТЕЛЬНО! На ассоциированый с ним номер будет отправлено сообщение при запуске в клиентском режиме без параметров. Рекомендуется использовать номер телефона ответственного за данный хост.
секция [MESSAGES]
DEFAULT=testSMStest
DOWN=Is down!!!
UP=Is up..
ALERT=AHTUNG!!! Russische Partizanen!!
Ассоциированные пары короткое_имя - сообщение. . Использование зарезервировано для будущего функционала.
Короткое имя DEFAULT - ОБЯЗАТЕЛЬНО! -см. секцию [RECIPIENTS]
Секция [mcinit]
Команды инициализации GSM-модема. Используется для настройки на конкретную модель GSM-модема. Прведенные в приложенном ini-файле команды рассчитаны на SIEMENS MC35i. Без необходимости - не менять!
Секции [MODE], [ACCESS], [Monster], [Haos], [Section1]
- Использование зарезервировано для будущего функционала.
На работу не влияют, но при старте программа проверяет наличие ключей в них. Не менять.
Файл MC35i.ini поставляется полностью настроенным для работы с модемом Siemens MC53iДонастроить необходимо только номер последовательного порта. Остальные настройки соответствуют настройкам модема по умолчанию.
Режим Сервер.
Параметры запуска в режиме сервера:
sms2.exe /S [/i] [/p] [/c] [/b]
ключ /S - обязательный. Программа различает регистр ключей.
Необязательные ключи:
/i - IP адрес сервера, например:"192.168.0.1"
по умолчанию: берется из mc35i.ini
/p - Порт сервера, например:"3223"
по умолчанию: берется из mc35i.ini
/c - номер COM-порта, например:"COM1"
по умолчанию: берется из mc35i.ini, COM1
/b - скорость обмена на COM-порту, например:"19200"
по умолчанию: берется из mc35i.ini, 19200
/n - номер получателя, например:"81234567890"
по умолчанию: берется из mc35i.ini
/m - текст сообщения, например:"server on node 1 is down!"
по умолчанию:берется из mc35i.ini, при наличии разделителей требует взятия в кавычки.
Примеры запуска:
sms2.exe /S /i127.0.0.1 /p82 /cCOM1 /b9600
- сервер прослушивает локалхост на порту 82
sms2.exe /S /i192.168.141.201 /p357
- сервер принимает соединения на ip-адрес 192.168.141.201 и порт 357
- настройки последовательного порта берутся из ini-файла.
sms2.exe /S
- ВСЕ настройки берутся из ini-файла
Специальные случай: адрес указан как 0.0.0.0 :
Сервер прослушивает все ip-адреса всех интерфейсов хоста
Режим Клиент:
sms2.exe [/C] [/i] [/p] [/n] [/m]
Все ключи аналогичны режиму Сервер за исключением необязательного ключа /C
Примеры запуска:
sms2.exe /n81234567890 /m"Node WhitHouse is DOWN!"
адрес и порт сервера берутся из ini-файла, на номер 81234567890 передается сообщение "Node WiteHouse is DOWN!". Кавычки при этом убираются.
sms2.exe /i192.168.2.5 /p43 /n81234567890 /m"Dima, sro4no perezvoni v offis!:)"
Клиент ищет сервер по адресу 192.168.2.5 на порту 43 и передает на номер 81234567890 сообщение "Dima, sro4no perezvoni v offis!:)".
sms2.exe
Все параметры берутся из ini-файла. Содержание сообщения, как правило, тестовое.
Скриншот гуя на PHP:
образец лог-файла:
================================================ 2010/12/5 17:22:4.555 sms sender started: write log started. 2010/12/5 17:22:4.555 Current Folder: C:\cmd\ 2010/12/5 17:22:4.555 Full log-file path: c:\cmd\sms2.log 2010/12/5 17:22:4.555 .ini file found. Open C:\cmd\mc35i.ini 2010/12/5 17:22:4.555 Command-line args count: 2 2010/12/5 17:22:4.555 1/S 2010/12/5 17:22:4.555 Mode = server 2010/12/5 17:22:4.555 S:Server IP address = 0.0.0.0 2010/12/5 17:22:4.555 S:Server port = 89 2010/12/5 17:22:4.555 S:COM-port number = COM1 2010/12/5 17:22:4.555 S:COM-port speed = 9600 2010/12/5 17:22:4.555 start in Server-mode 2010/12/5 17:22:7.953 module Server: Create MUTEX 2010/12/5 17:22:7.953 module Server: start Thread COM-port ================================================ 2009/4/27 4:27:28.968 sms sender started: write log started. 2009/4/27 4:27:28.968 Current Folder: C:\cmd\ 2009/4/27 4:27:28.968 Full log-file path: c:\cmd\mysms2.log 2009/4/27 4:27:28.968 .ini file found. Open C:\cmd\mc35i.ini 2009/4/27 4:27:28.968 Command-line args count: 6 2009/4/27 4:27:28.968 1/C 2009/4/27 4:27:28.968 2/n8xxxxxxxxxx 2009/4/27 4:27:28.968 3/meeee 2009/4/27 4:27:28.968 4/i192.168.125.254 2009/4/27 4:27:28.968 5/p89 2009/4/27 4:27:28.968 Mode = client 2009/4/27 4:27:28.968 C:MessageBody = eeee 2009/4/27 4:27:28.968 Start module Client 2009/4/27 4:27:28.968 String for send to server: <startn>8xxxxxxxxxx<starts>eeee<ends> 2009/4/27 4:27:28.968 module Client: try INIT SOCKET 2009/4/27 4:27:28.984 module Client: INIT SOCKET Success. Try connect to server 2009/4/27 4:27:28.984 module Client: Query server 2009/4/27 4:27:28.984 module Client: Wait server answer 2009/4/27 4:27:28.984 module Client: sms send to server 2009/4/27 4:28:59.750
- блог пользователя Monster
- 25229 просмотров
Новые записи в блогах
- Устранение дребезга контактов на основе вертикальных счетчиков
- Диагностика Imprecise Bus Faults в микроконтроллерах Cortex-M3/M4/M4F
- Self-powered камера
- Фоновый модулятор: беспроводная связь из ничего (перевод)
- Texas Instruments Analog Applications Journal SLYT612 "Снижение искажений в аналоговых КМОП ключах" (перевод)
- USB MSD. Часть 6. Команды SCSI (перевод)
- USB MSD. Часть 3. USB класс накопителей данных (перевод)
- Texas Instruments Application Report SBAA042 "Кодовые схемы, используемые в аналогово-цифровых преобразователях" (перевод)
- 10 принципов правильного интерфейса
- Релиз SDK на русский микропроцессор КРОЛИК
Комментарии
Упс..Доложил файл.
чтоб не вылетал, надо дать
Отправить комментарий