Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
MSComm и Telnet
|
|||
|---|---|---|---|
|
#18+
Есть некий прибор. VoiceFinder AP200B-шлюз IP-телефонии. Но суть не в этом. Он настраивается через терминалку. Вариант1: через консоль через COM-порт подключен к компьютеру Вариант2: управляется через Telnet. В "Ручном" режиме можно использовать HyperTerminal (как в случае com-port, так и в случае telnet). Причем интерфейс общения: команды, ответы будут выглядеть абсолютно одинаково. В силу особенностей работы с прибором необходимо иногда программно менять его настройки. Вариант1(com-port) Для этого используется Microsoft Comm Control 6.0 и программа на VB с возложенными на нее задачами отлично справляется. Вариант2 (telnet). Есть ли способ программно управлять прибором по сети, т.е.через telnet? Грубо говоря некая штука типа Microsoft Comm Control только для общения через telnet, а не через com-port? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2007, 23:59 |
|
||
|
MSComm и Telnet
|
|||
|---|---|---|---|
|
#18+
Да, хорошая штука. Переписал свою программу, вроде все функционирует. Один вопрос с ходу осилить не могу. Программа устроена так, что она постоянно (сутками) наблюдает за прибором. Периодически дает ему команды. Прибор устроен таким образом, что после перезагрузки он полностью восстанавливает свое состояние, в том числе и с т.зр.возможности обращения к нему по telnet. Но на момент перезагрузки он какое-то время не виден. В связи с этим 2 ситуации. 1. Программа пришла к выводу, что прибор надо перезагружать: Код: plaintext Код: plaintext Делаем Код: plaintext Код: plaintext 1. 2. Здесь все относительно просто. 2. Прибор по какой-то причине может решить перезагрузиться сам (самое простое- сбой питания). В этом случае программа об этом не знает. А связь тем не менее разорвана. Соответственно ни одна команда не пройдет. Программа либо вылетит, либо будет висеть. Есть ли способ как-то автоматически получить информацию об этом событии с целью запуска процедуры восстановления связи(процедура отработана в пункте 1)? P.S. с com-port-ом проще: там связь не "теряется" в момент перезагрузки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.02.2007, 02:50 |
|
||
|
MSComm и Telnet
|
|||
|---|---|---|---|
|
#18+
afaik такой возможности нет. Но ее можно реализовать самому: прибор можно пинговать через разные промежутки времени. В зависимости от критчности работы, хоть каждые 5 секунд, типа: "Ты живой?" - "Да". Magnus ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.02.2007, 04:06 |
|
||
|
MSComm и Telnet
|
|||
|---|---|---|---|
|
#18+
Перехватить ошибки и обрабатывать по ним Я писал биллинг для VoIP шлюза на VB, через telnet Решил эту проблему простым перехватом ошибок On Error Goto Err ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.02.2007, 08:01 |
|
||
|
MSComm и Telnet
|
|||
|---|---|---|---|
|
#18+
orunbekПерехватить ошибки и обрабатывать по ним Я писал биллинг для VoIP шлюза на VB, через telnet Решил эту проблему простым перехватом ошибок On Error Goto Err На каком событии ошибки? Я в свое время тоже делал подобные вещи, с кассовым аппаратом базарил по телнету. Как ни крутил - единственным выходом был пинг железяки, ибо никаких ошибок обрыва коннекта небыло. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.02.2007, 13:37 |
|
||
|
MSComm и Telnet
|
|||
|---|---|---|---|
|
#18+
Забыл сказать, в моей проге нужно было периодически обращаться к шлюзу, т.е. скажем каждые 5 сек, и если связь обрывалась выходила ошибка, которую и перехватывал Насчет пинга, а если... скажем у вас оборвалась телнет связь, а сам шлюз пингуется? Может периодически какую-нибудь простую команду нужно выполнять? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.02.2007, 14:13 |
|
||
|
MSComm и Telnet
|
|||
|---|---|---|---|
|
#18+
orunbekЗабыл сказать, в моей проге нужно было периодически обращаться к шлюзу, т.е. скажем каждые 5 сек, и если связь обрывалась выходила ошибка, которую и перехватывал Насчет пинга, а если... скажем у вас оборвалась телнет связь, а сам шлюз пингуется? Может периодически какую-нибудь простую команду нужно выполнять? Я это собственно иимел ввиду, какой либо простой запрос напрямую к девайсу и простой ответ на него, "Ты там?" "Да" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.02.2007, 15:43 |
|
||
|
MSComm и Telnet
|
|||
|---|---|---|---|
|
#18+
Что нибудь сделаем. Кстати, как ping программно сделать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.02.2007, 18:28 |
|
||
|
MSComm и Telnet
|
|||
|---|---|---|---|
|
#18+
Хотя согласен, пинг не выход. 5сек это уж слишком часто в моем случае, а за это или похожее время прибор успеет исчезнуть и вновь появиться "на экранах радаров". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.02.2007, 18:30 |
|
||
|
MSComm и Telnet
|
|||
|---|---|---|---|
|
#18+
Класс Пинг Пример использования: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.02.2007, 19:59 |
|
||
|
MSComm и Telnet
|
|||
|---|---|---|---|
|
#18+
Magnus23 Я это собственно иимел ввиду, какой либо простой запрос напрямую к девайсу и простой ответ на него, "Ты там?" "Да" Так и сделал. Код: plaintext Код: plaintext Теперь другая задача: на win98 все работает, а надо загнать программу на WIN2003, она там категорически отказывается работать, а возможности компилировать ее там на VB6 нет (о чем мой другой топик). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.02.2007, 00:48 |
|
||
|
MSComm и Telnet
|
|||
|---|---|---|---|
|
#18+
А вот код для управления вашим девайсом по сети 'устанавливаем соединение Private Sub Command1_Click() Winsock1.Connect "ip адрес железяки", "23" End Sub ' шлем конфиг Private Sub Command2_Click() Winsock1.SendData "конфиг" & vbCrLf ...... Winsock1.SendData "еще конфиг" & vbCrLf End Sub 'textbox text1 в котором видно что происходит Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long) Dim buffer As String Winsock1.GetData buffer, vbString Text1.Text = buffer + Text1.Text & vbCrLf End Sub ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.08.2010, 09:05 |
|
||
|
|

start [/forum/topic.php?fid=60&msg=34317773&tid=2159528]: |
0ms |
get settings: |
10ms |
get forum list: |
16ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
39ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
55ms |
get tp. blocked users: |
1ms |
| others: | 248ms |
| total: | 392ms |

| 0 / 0 |
