Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

TSocketClient


nickolayLI ©   (2002-10-16 12:24:00) 

пишу не большой чатик, у меня запущен сервер, у клиентов, клиентская часть, так вот вопросик сам, как сказать клиенту что сервер допустим больше не доступен, и и что бы клиент тоже закрывал соединение.
пишу следующее на сервере
procedure TForm1.SocketServer1Disconect(..);
begin
Socket.Connections[0].SendText("C");
Socket.Connections[0].Close;
end;

у клиента

procedure TForm1.ClientSocket1Read(Sender: TObject; Socket: TCustomWinSocket);
begin
if Trim(Socket.ReceiveText) = "C" then begin
Memo1.Lines.Add("Not Connecting");
ClientSocket1.Active:=False;
end;
end;
но ничегоподобного на клиенте не происходит :(, и еще хотелось бы что бы клиент после отключения сервера, продолжал поиск сервера до тех пор пока не найдет.

спасибо


alex_ustasu   (2002-10-22 11:36:00) [1]

Привет коллеги. Поделитесь знанием. Как вы подавляете выдачу сообщения об Exception, когда TCLientSocket пытается соединиться (Active:=true)с неактивным TServerSocket ?
У меня задача найти свои серверы в локалке и соединиться с одним из найденных. Перехват Exception никак не получается.
Неужели выход только в использованием функций Winsock ?


nickolayLI   (2002-10-17 12:10:00) [2]

на сервере
onClientError;
ErrorCode:=0;
....

на клиенте
onError
ErrorCode := 0;
....


VID   (2002-10-16 15:36:00) [3]

Как обрабатываешь событие onClientError у сервера, и onError у клиента ? (КОД ПОКАЖИ)


nickolayLI   (2002-10-16 13:06:00) [4]

а всё отбой сделал :) сорри...
в первый раз, в первый класс :)


nickolayLI   (2002-10-16 13:05:00) [5]

всё сделал, только вот как сделать чтобы клиент постоянно опрашивал сервер, даже тогда когда он вырублен...


nickolayLI   (2002-10-16 12:57:00) [6]

и еще как перехватить сообщение об ошибки, если допустим сервер не доступен?


nickolayLI   (2002-10-16 12:53:00) [7]

хм.. ну сделал так
на клиенте
procedure TForm1.ClientSocket1Disconnect(Sender: TObject;
Socket: TCustomWinSocket);
begin
memo1.lines.add("server disconect...");
end;

на сервере

rocedure TForm1.CloseClick(Sender: TObject);
begin
ServerSocket1.Active:=False;
Close;
end;
после того как форма закрывается, сервер, на клиент должно появится сообщение в мемо поле а нету не фига :(


Digitman   (2002-10-16 12:43:00) [8]


> как сказать клиенту что сервер допустим больше не доступен


А зачем серверу "трепаться" лишнего ? Он просто переходит (когда ему вздумается) в неактивное состояние (ServerSocket.Active := False) и у всех его клиентов возникает событие OnDisconnect() - это и есть самый достоверный факт прекращения сеанса обслуживания клиента по инициативе сервера.


> хотелось бы что бы клиент после отключения сервера, продолжал
> поиск сервера до тех пор пока не найдет


Да на здоровье ! Кто ж ему мешает ? Какие проблемы-то ?


KaRaT   (2002-10-16 12:42:00) [9]

onDisconnect у клиента...


KaRaT   (2002-10-16 12:39:00) [10]

Как понимаю, то здесь немного нелогично...
Клиент уже откулючилсчя, а ты ему посылаешь строку...
Надо обрабатывать у клиента, а не с сервера...


Наверх

Титульная страница Поиск, карта сайта Написать письмо