Форум: "Основная";
Текущий архив: 2002.07.29;
Скачать: [xml.tar.bz2];
ВнизВопрос Найти похожие ветки
← →
xelax (2002-07-17 14:56) [0]Программа чат на локальной сети на основе сокетов.
Клиенты грузятся автораном. Как серверу отследить клиентов
(активны или нет) на случай аварийного завершения программы клиентов Reset или Power
← →
Skier (2002-07-17 15:22) [1]>xelax
Нужно через определённый промежуток времени (TTimer)
посылать каждому клиенту сообщение типа "Ты здесь, сынок ?",
а он должен всякий раз отвечать "Я здесь папа".
Если клиент не ответил на такое сообщение сервера, то с ним
нет связи (?).
По другому, видимо, никак...
← →
Eugene Lachinov (2002-07-17 15:27) [2]Может быть поможет
type
TTcpKeepAlive = record
onoff : DWord;
keepalivetime : DWord;
keepaliveinterval : DWord;
end;
const
SIO_KEEPALIVE_VALS = $80000000 or $18000000 or $00000004;
procedure TPowersock.SetKeepAlive(dwTime, dwInterval : DWord);
var
TcpKeepAlive : TTcpKeepAlive;
dwReturned : DWord;
begin
TcpKeepAlive.onoff := 1;
TcpKeepAlive.keepalivetime := dwTime;
TcpKeepAlive.keepaliveinterval := dwInterval;
WSAIoctl(ThisSocket, SIO_KEEPALIVE_VALS, @TcpKeepAlive,
sizeof(TcpKeepAlive), nil, 0, dwReturned, nil, nil);
end;
← →
c0pYc@t (2002-07-17 15:32) [3]Попробуй выполнять действие посылки сообщения
s := "Ты живой";
for i := 0 to ServerSocket1.Socket.ActiveConnections-1 do
ServerSocket1.Socket.Connections[i].SendText(s);
Клиент получив s="Ты живой";
s := "Да жив пока";
Socket.SendText(s);
← →
Builder (2002-07-17 21:41) [4]Можно наоборот - как аська делала
Клиент посылает серверу сообщение - я жив!
Сервер его ловит и отмечает - о, чудак жив.
IMHO не дело сервера за клиентами гоняться
← →
TTCustomDelphiMaster (2002-07-17 22:17) [5]
> Builder © (17.07.02 21:41)
В случае аварийного завершения программы клиентов Reset или Power сервер даже не заметит что клиент помер. Он заметит только когда попробует обратиться к "мертвому" клиенту, тогда у него возникнет ошибка и соединение связанное с "мертвым" клиентом нужно будет закрыть самому.
← →
Builder (2002-07-18 10:02) [6]2 TTCustomDelphiMaster
Да, ну и что?
А в аське неикогда не замечалось, что пишешь мессадж человеку который в онлайне, а как только отправляешь его он становиться в офлайне?
Все зависит от времени опроса
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2002.07.29;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.007 c