Andrei, желание понятное, я тоже думал на эту тему.
Дим, keepalive - это правильно, но не о том.
keepalive позволяет не слишком поздно "противополжной стороне" (и клиенту, и
серверу) - понять,
что на том конце коннекта уже никого нет.
Собеседник или умер, или TCP оборвался по другой причине. Шнур ногой
выдернули.
я бы сформулировал задачу иначе (imho):
реорганизация протокола т.о. чтобы постоянный TCP-коннект не требовался.
Как в HTTP, например.
Подключился, получил ID сессии, и можешь TCP-коннект закрыть.
но масштаб переделок в серверном коде... мне даже не осознать :-)
Соотношение трудоемкости к положительному эффекту... может зашкалить.
P.S. Не в курсе, чего добился Коваленко в IBProvider. Может это будет более
простым решением?