Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.07.29;
Скачать: CL | DM;

Вниз

Вопрос   Найти похожие ветки 

 
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;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.017 c
1-95347
roman002
2002-07-18 10:15
2002.07.29
Объем занимаемого пространства


14-95503
Cranium
2002-07-01 13:43
2002.07.29
Почему код D5 не работает без установленных делфей


4-95599
Dmitry Sheenok
2002-05-20 14:51
2002.07.29
Как по хендлу окна определить его состояние?


1-95353
GreatQuaker
2002-07-18 10:52
2002.07.29
Подсказка в системном трее


1-95343
newone
2002-07-17 11:02
2002.07.29
Добавление макроса в Excel