Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Server - Client, Как избавится от ошибки клиента

421
21 октября 2002 года
bercut
124 / / 20.06.2000
Значит такая ситуация.
Есть две проги сервер и клиент, которые построены на базе компонетов TServetSocket и TClientSocket. К серверной части пока вопросов нет, а вот к клиентской есть. Все работает отлично, принимает и отсылает, но при отсутствии сервера клиент ругается и выдает вот ошибку № 10061 или в крайнем случае № 10054. Ну это еще ладно, при долговременном отсутствии сервера клиент совсем перестает выдавать ошибки и уже не реагирует на сеть, не помогает даже отключение сокета и его повторное включение, нужно заново запускать клиента.
Как от этих всех ошибок избавиться и чтобы клиент мог нормально работать неограниченное время без серверной части, а при загрузке сервера подключаться к нему.
985
22 октября 2002 года
kostas
34 / / 20.07.2000
Я рекомендую попробовать так.
1. Первое, сделай два потока, основной (в котором выполняется главная программа клиента).
2. И вторичный, в котором отслеживается соединение с сервером и если оно отсутствует, то устанавливается снова.
3. Введи глобальную переменную отслеживаения соединения (например: boolean Connected).
4. Во вторичном потоке введи таймер (со сбросом в 0).

В первичном потоке:
if (Connected == true)
{
try
{
// основное тело программы работы с сервером.
}
catch(...)
{
Connected == false;
}

}
else
{
}

Во вторичном потоке:

Тело таймера:

{
if (Connected == false)
{
try
{
ClientServer->Connect;
if (ClientServer->Connected == true)
{
Connected = true;
}
else
{
Connected = false;
}
}
catch(...)
{
Connected = false;
}

}
else
{
}
// Функция сброса таймера в ноль.

}

Что-то в этом роде.
985
22 октября 2002 года
kostas
34 / / 20.07.2000
Сам понимаешь, это всё структурно.
Названия компонентов условные.-)
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог