Форум программистов, компьютерный форум, киберфорум
Delphi
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.88/8: Рейтинг темы: голосов - 8, средняя оценка - 4.88
0 / 0 / 1
Регистрация: 15.10.2007
Сообщений: 30
1

SocketServer и Borland SocketServer зависает

18.10.2007, 14:57. Показов 1474. Ответов 1
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Господа, кто встречался со следующей проблемой:
Трехзвенка, на клиенте используется TSocketConnection, соответственно на компе с сервером стоит Borland SocketServer. И вот эта милая парочка при общениии по модему (видимо при каких-то ошибках связи при перекачке данных) намертво виснет (точнее, виснет клиент, перестает отзываться на запросы)
Вопрос в том, как побороть эту гадость...
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
18.10.2007, 14:57
Ответы с готовыми решениями:

Странные проблемы с SocketServer.
Трехзвенка, на клиенте используется TSocketConnection, на сервере - Borland SocketServer в...

Ошибка в работе с SocketServer/Client
Всем привет. У меня такая проблемка, программа отсылает сообщение с логином и паролем серверу, а...

Нужно вызвать событие в программно созданном SocketServer
Дело такое. Я организовываю чат через TSocketServer/client У меня идёт создание вотрой комнаты для...

Borland Delphi 7 отказывается отвечать (зависает) после запуска любого проекта
Borland Delphi 7 перестал запускать любой написанный на нём проект, будь это консольное приложение...

1
0 / 0 / 0
Регистрация: 31.10.2007
Сообщений: 9
31.10.2007, 04:24 2
у себя я делал два варианта
брал у сервера информацию о количестве клиентов
(загружен или нет?)
если загружен то:
1. уменьшал размер пакета.
2. уменьшал максимальное количество процессов.

если не загружен то наооборот.

Сеанс был такой:
Cоздаю клиент, после сенса его удаляю.

вроде:

var
a: TSocetClient;

begin
Inc(i); //Количество процессов
...
try
a.Connect;
...
//сдесь передаю инф-ию но пакетами с уведомлением
a.free
Dec(i);
end;
...
end;

Отдельно завожу таймер (можно еще как-нибудь)
где проверяю кол-во клиентов - если клиент завис
i - не уменьшается.
При определенном кол-ве выдаю сообщение, (себе на адм-ую
машину - копию), что систему сильно загружена - надо что-то сделать.

Можно для сеанса создавать отдельный процесс и если он завис, то убивать его - но под Win95-98 не часто завешивается
комп полностью. В NT никаких проблем (кстати и зависший клиент освобождается тоже a.Free, только
тогда надо запомнить всех клиентов.)

Исходиков под рукой нет. Если не получится, скинь мне фрагмент, я посмотрю.
0
31.10.2007, 04:24
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
31.10.2007, 04:24
Помогаю со студенческими работами здесь

Все те же SocketClient и SocketServer
Клиент: procedure TForm1.Button1Click(Sender: TObject); begin ...

Отправка инфы через SocketServer на SocketClient
Доброго времени суток, форумчане. Пишу программу, что-то на подобии радио, есть один серв, к...

SocketServer & SocketClient, не отправляет текст с клиента на сервер
Помогите с проблемой. Есть сокет клиент и сокет сервер. С сервера на клиент сообщение нормально...

Обработка события onClose SocketServer
Добрый день, хочу использовать в приложении сокет-соединение (сервер написан на python), нашел вот...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru