Код: Выделить всё
Socket.Bind('0.0.0.0','57777');
Socket.setLinger(true,10000);проверяю есть ли новый клиент:
Код: Выделить всё
repeat
if Socket.CanRead(100) then
begin
......
end;
until Terminated;
Но в при наступлении какого-то момента Socket.CanRead(100) всегда стает true и цикл "зацыкливает". Видимо срабатывают ограничения ОС. Но ошибок никаких нет в Socket.LastError.
На линухе это достигается примерно на 460 коннекте.
На винде такого дождаться не могу. Но не факт, видимо и тут есть ограничение, просто, число побольше.
Как отловить такой момент?
Добавлено спустя 1 час 46 минут 22 секунды:
Нашел как изменить лимиты в системе.
Просмотр текущих лимитов:
Код: Выделить всё
ulimit -nИзменять нужно файл
Код: Выделить всё
vi /etc/security/limits.confНо это не решает саму проблему. Нужно понимать, что программа уперлась в лимит.
