Главная страница
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.01 c
14-95549
Death for...
2002-07-02 19:43
2002.07.29
Пароль под маской...


4-95622
Aliev Adil
2002-05-23 16:03
2002.07.29
Windows Directory


1-95348
EugeneP
2002-07-18 11:54
2002.07.29
Вынос окна поверх остальных


1-95359
novill
2002-07-18 10:23
2002.07.29
Как русифицировать надписи на кнопках сообщений пользователю?


3-95233
федя
2002-07-09 06:24
2002.07.29
Помогите новичку