0
Def
22.11.09
✎
12:03
|
Казалось бы простейшая задача - организовать обмен 1С 8.1 - стороннее приложение, посредством посылки тестовых строка через TCP IP, вылилась в неожиданную головную боль. Внешнее приложение может работать как TCP IP сервер, так и TCP IP клиент. Меня интересует как сервер - т.е. задача простейшая - соединится с TCP IP сервером, кинуть на IP и порт запрос и получить ответ. Стандартных механизмов в платформе нет (почему ?- вопрос к разработчикам). Использовать доступные внешние компоненты, написанные еще на 7.7 невозможно, так как они заточены под обмен 1С - 1С, а в данном случае мы полностью должны подстроится под внешнее приложение. Остается два варианта, которые я нашел - WinSock и написание внешней компоненты. Второе делать очень не хочется. А с первым ничего не получается. Вот код (дял простоты и сервер и клиент на одном компьютере):
// это клиент
ВинСок = Новый ComОбъект("MSWinsock.Winsock");
// это сервер
ВинСокSrv = Новый ComОбъект("MSWinsock.Winsock");
ВинСокSrv.LocalPort = 55900;
ВинСокSrv.Bind( 55900, "192.168.0.107" );
ВинСокSrv.listen();
// пытаемся соединится с сервером
ВинСок.Connect("192.168.0.107"", 55900);
Пока ВинСок.State = 6 Цикл
// ждем соединения
КонецЦикла;
// статус = 7 - соединились
Соединение упорно "зависает" на статусе 6 - "соединяюсь" и не выходит на статус 7 - "соединено"... Очень подозреваю, что со стороны сервера нужно
дать команду Accept(). Но обработать предопределенные функции объекта "ActiveX" в 1С невозможно. Может кто-нибудь посоветует каким путем дальше идти ?
|
|