Имя: Пароль:
1C
1С v8
1С winsock сервер
,
0 poskotinov_av
 
12.09.17
19:55
здравствуйте, подскажите как поставить прослушку TCP порта ч/з winsock или другой какой-нить компонент?
код:

    WinSocket = новый COMОбъект("mswinsock.winsock");
    WinSocket.LocalPort = "4444";
    WinSocket.Bind("4444", "127.0.0.1");
    WinSocket.listen();
    ДобавитьОбработчик WinSocket.DataArrival, DataArrival;
    ДобавитьОбработчик WinSocket.Error, WinSocketError;
    ДобавитьОбработчик WinSocket.ConnectionRequest, ConnectionRequest;


переводит WinSocket.State в режим 2 (прослушка), но его как будто бы - нет. обработчики - не срабатывают и клиент не видит сервер...
клиентской частью отправляю сообщение:

    ЕстьСоединение = WinSocketClient.State = 7;
    если ЕстьСоединение тогда
        WinSocketClient.SendData(СокрЛП("ТекстСообщения"));
        сообщить("отправили текст сообщения");
    иначе
        сообщить("нет соединения");
    КонецЕсли;

но соединение - отсутствует, причем написал програмку на дельфях (на компоненте инди), с ней коннектится, но видимо формат сообщений - разный, поэтому инди не принимает сообщения.
1 Fragster
 
гуру
12.09.17
22:34
а зачем именно вебсокет?
2 Asmody
 
12.09.17
23:18
(0) Вы в 1С хотите winsock сервер реализовать? Без ВК не выйдет.
3 oleg_km
 
12.09.17
23:36
(2) Однопоточный нормально работает, события в очередь выстраиваются, по мере обработки событий обрабатываются.
4 poskotinov_av
 
13.09.17
05:59
(1) или другой какой-нить компонент?
5 poskotinov_av
 
13.09.17
06:00
(2) Можно поподробнее?
6 poskotinov_av
 
13.09.17
06:02
как вообще заставить 1С-ку слушать порт и прерываться по команде из вне?
7 oleg_km
 
13.09.17
10:30
(6) Во время выполнения потока команд никак. Компонент накапливает события в буфере. Когда 1С переходит в ожидание ввода, то начинают сыпаться события. Поэтому если вы это делаете на сервере, то ничего не происходит. И на клиенте будет происходить только если клиент находится в режиме ожидания. Кстати, имей ввиду, что компонент 32-х битный, на 64-х битном клиенте не взлетит.
А что за задача? Я балуюсь сокетами, но то что я делаю врядли кому-то еще нужно. В чем прям такая необходимость в сокетах, может мы другой путь подскажем. Работа с сокетами из 1С вещь нетривиальная. Если можно обойти - мой совет бывалого лучше обойти.
8 Fragster
 
гуру
13.09.17
11:01
(6) именно клиента дергать надо?
9 poskotinov_av
 
13.09.17
14:53
(8) (7) необходимо клиентом дергать всех клиентов или конткретного клиента, которые подключены в данный момент к серверу.
10 oleg_km
 
13.09.17
15:21
(9) УФ?
11 poskotinov_av
 
14.09.17
05:31
(10) да
12 Fragster
 
гуру
14.09.17
10:43
13 poskotinov_av
 
14.09.17
19:18
(12) Вы, видимо - не понимаете, мне для похожих целей, но СВОЕ!!!
14 poskotinov_av
 
14.09.17
19:20
желательно без установки дополнительных компонентов