|
MSWinsock.Winsock и Telnet | ☑ | ||
---|---|---|---|---|
0
wmonref
25.08.19
✎
16:49
|
Приветствую!
Пытаюсь подключиться из 1С через Telnet к автомобильным весам и прочитать данные с этих весов. (Через Putty подключаюсь по Telnet-у и все работает нормально) Код: Попытка WinSocket = Новый COMОбъект("MSWinsock.Winsock"); Исключение Сообщить("Ошибка создания объекта Winsock. " + ОписаниеОшибки()); Возврат; КонецПопытки; Адрес = "192.168.0.99"; Порт = 1223; WinSocket.RemoteHost = Адрес; WinSocket.RemotePort = Порт; WinSocket.Connect(); WinSocket.GetData(ДатаСрв); {ВнешняяОбработка.ПереносОпераций.Форма.Форма.Форма(83)}: Ошибка при вызове метода контекста (GetData) WinSocket.GetData(ДатаСрв); по причине: Произошла исключительная ситуация (Winsock): Wrong protocol or connection state for the requested transaction or request Все проходит успешно до WinSocket.GetData(ДатаСрв). В чем может быть проблема?? |
|||
1
Garikk
25.08.19
✎
18:42
|
(0) Чую что protocol сокету не установили
|
|||
2
Garikk
25.08.19
✎
18:43
|
вроде как WinSocket.Protocol=0 перед WinSocket.Connect()
|
|||
3
Сияющий в темноте
25.08.19
✎
22:16
|
он асинхронный,после того,как дали Connect,нужно ждать,когда придет событип подключения,и это,1с его ловить не умеет.
с приемом данных также-событие получения данных и в нем пришедшие данные. |
|||
4
Сияющий в темноте
25.08.19
✎
22:16
|
telnet умеет в файл и из файла,так что проще через него.
|
|||
5
wmonref
26.08.19
✎
11:34
|
(2) Сделал как посоветовали - ошибка все равно выскакивает...
(4) Поподробней можно объяснить пожалуйста? |
|||
6
wmonref
26.08.19
✎
19:15
|
Кто-нибудь?
|
|||
7
wmonref
26.08.19
✎
20:03
|
Решил!
Обработчик ожидания надо использвать... Процедура КнопкаВыполнитьНажатие(Кнопка) Попытка WinSocket = Новый COMОбъект("MSWinsock.Winsock"); Исключение Сообщить("Ошибка создания объекта Winsock. " + ОписаниеОшибки()); Возврат; КонецПопытки; Адрес = "192.168.0.99"; Порт = 1223; WinSocket.RemoteHost = Адрес; WinSocket.RemotePort = Порт; WinSocket.Connect(); ПодключитьОбработчикОжидания("ПолучитьДанные", 1); КонецПроцедуры Процедура ПолучитьДанные() ОтключитьОбработчикОжидания("ОправитьДанныеПриСоединении"); State = WinSocket.State; Если State = 6 Тогда ПодключитьОбработчикОжидания("ОправитьДанныеПриСоединении", 1); ИначеЕсли State = 7 Тогда WinSocket.GetData(ТекстСообщения); Иначе Сообщить(State); КонецЕсли; КонецПроцедуры |
|||
8
wmonref
26.08.19
✎
20:05
|
П.С.
Надо заменить "ОправитьДанныеПриСоединении" на "ПолучитьДанные" |
|||
9
duhsi
18.10.19
✎
08:08
|
Доброго времени суток!
столкнулся с подобной задачей, получить данные с крановых весов. Весы подключены через WiFi . по IP и Port Коннект проходит, статус 7, а вот когда дело доходит до функции GetData() то тут тупик, ни каких данных с весов не приходит. подскажите пожалуйста, какие-то параметры нужно передавать в этой функции или как это вообще работает? |
|||
10
duhsi
22.10.19
✎
13:22
|
(8) wmonref подскажите вы передавали какие-то параметры?
|
|||
11
oleg_km
22.10.19
✎
15:52
|
http://catalog.mista.ru/public/119982/
DataArrival - возникает при поступлении данных. Процедура WinSocketDataArrival(Элемент, bytesTotal) Т.е. два параметра. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |