Первый раз пробую 1С++, и в ООП не очень силен, так что сильно не бейте. Пытаюсь создать простейший TCP-сервер. В пустой конфе создал форму, на ней разместил тектовое поле WinsockHolder. Модуль формы вот:
Перем AX, tcpServer;
//******************************************* Процедура ЗапуститьСервер() AX = CreateObject("ActiveX"); AX.AssignAttrib(Форма,"WinSockHolder"); tcpServer = AX.CreateControl("MSWinsock.Winsock.1"); //tcpServer.EventProcessing(1); tcpServer.LocalPort = Port; //tcpServer.Bind(Port); tcpServer.Listen(); КонецПроцедуры
Процедура ОстановитьСервер() Если ТипЗначенияСтр(tcpServer) = "OLE.IMSWinsockControl" Тогда tcpServer.Destroy(); КонецЕсли; КонецПроцедуры
Процедура WinSockHolder_ConnectionRequest (Index, Знач requestID) Экспорт Сообщить("ConnectionRequest"); КонецПроцедуры
Процедура WinSockHolder_DataArrival (Index, Знач requestID) Экспорт Сообщить("DataArrival"); КонецПроцедуры
Процедура WinSockHolder_Error(Элемент, Num, Description, Scode, Source, HelpFile, HelpContext, CancelDisplay) Сообщить("Error"); КонецПроцедуры
Процедура WinSockHolder_Connect (Index, Знач requestID) Экспорт Сообщить("Connect"); КонецПроцедуры
Процедура WinSockHolder_Close (Index, Знач requestID) Экспорт Сообщить("Close"); КонецПроцедуры
Процедура WinSockHolder_SendProgress (Index, Знач requestID) Экспорт Сообщить("SendProgress"); КонецПроцедуры //
Процедура WinSockHolder_SendComplete (Index, Знач requestID) Экспорт Сообщить("SendComplete"); КонецПроцедуры //
При этом сервер у меня стартует, порт открывается, но при коннекте туда телнетом сразу после соединения идет обрыв, и ни одна из процедур событий не вызывается. Может кто-нибудь подсказать, в чем я не прав?
Загружаю только 1С++, без FormEX. Winsock лицензирован.
|