ServerSocket в режиме stThreadBlocking, в потоке:
while (connected = true) do begin
чтение;
и т.д.
end;
ClientSocket.Connected всегда возвращает true и цикл не завершается пока не произойдет какое либо исключение, это как-то лечится или ловить исключения?