|
Winsock закрывает соединение. |
☑ |
0
SuperMario
22.05.18
✎
11:49
|
Всем привет! Друзья, нужна помощь по Winsock
ВинSock= Новый COMОбъект("MSWinsock.Winsock");
ВинSock.Connect("172.16.0.193","6722");
Сообщить(ВинSock.State);
возвращает состояние =7 ( sckConnected=7,Подключен);
далее отправляю данные
Если ВинSock.State = 7 Тогда
ВинSock.SendData ("12");
КонецЕсли;
все работает.
Но спустя минуту бездействия падет в состояние =8
sckClosing=8,Peer is closing the connection(Клиент закрыл подключение).
По коду никаких команд о закрытии я не отправляю.
Как заставить сокет не закрывать соединение?
p.s. вышел из ситуации переподключением. Но хотелось бы понять сего зверька, почему так?
|
|
1
drumandbass
22.05.18
✎
12:01
|
(0) Для приёма нужна ВК которая будет генерить внешнее событие. Для отправки ВК не нужна.
|
|
2
SuperMario
22.05.18
✎
12:11
|
(1) у меня только отправка.
Это сетевое двухканальное реле SR-201.
Управление для СКУД.
Работает, но падает соединение с ней. Я так понимаю, что это win7 делает для подвисших сокетов сама?
|
|
3
eklmn
гуру
22.05.18
✎
12:16
|
(2) потому что слушать привилегия сервера.
У тебя клиент, его дело отправить и закрыться.
|
|
4
SuperMario
22.05.18
✎
12:32
|
(3) понимаю.
|
|
5
Вафель
22.05.18
✎
12:34
|
тебе нужен режим keep-alive
|
|
6
SuperMario
22.05.18
✎
12:43
|
(5) что-то вроде этого?
Установка параметров tcp_keepalive на сервере Windows
Вы должны обладать правами Администратора к серверу. В разделе реестра
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters
создайте параметр DWORD с именем KeepAliveTime и значением 300000 (десятичным). Параметр задаётся в миллисекундах, поэтому предлагаемое значение — это 5 минут. После чего остановите Caché и перезагрузите сервер.
Что касается двух других параметров tcp_keepalive, то их умолчания в Windows таковы:
KeepAliveInterval
Key: Tcpip\Parameters
Value Type: REG_DWORD—time in milliseconds
Valid Range: 0–0xFFFFFFFE
Default: 1000 (1 секунда)
|
|
7
SuperMario
22.05.18
✎
12:58
|
Думаю, что reconnect будет правильным, дабы не ломать реестр.
Спс всем за помощь!
|
|
8
Дык ё
22.05.18
✎
13:01
|
(6) не оно?
|
|
9
MM
22.05.18
✎
13:02
|
(6) Этот параметр похоже означает совсем другое ) . Он и так раз в секунду поддерживает соединение пустым пакетом.
Похоже сервер к которому подключаешься сам рвёт соединение по своим причинам, так что в (7) выход правильный.
|
|