Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.011 c
4-95612
Nubie
2002-05-22 02:30
2002.07.29
?Как дописать PE файл?


1-95307
kserg@ukr.net
2002-07-17 16:46
2002.07.29
Знатокам: как узнать высоту ScrollBar у какого-либо объекта?


14-95554
MetalFan
2002-07-03 12:08
2002.07.29
Что за файл?


3-95228
ioRaptor
2002-07-08 15:33
2002.07.29
Как записать дату


1-95296
Дельфятник
2002-07-15 10:52
2002.07.29
Access Violation при закрытии программы.




   Наверх