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

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

как пропилинговать сервак [D4, D7, Win95/98]


SergeySEM ©   (2004-09-17 15:20:00) 

Драсте!
Таков вопрос у меня TClientSocket  и TServerSocket все работает Ok но есть странность когда в сети у меня еще не появился сервер а клиент открывает соединение то вылетает ошибка
а задача такова надо что-бы в локальной сети была прога и она следила и информировала как клиентов о том что сервер в сети так и сервер о том сколько у него клиентов.

немного кода



var YNConn:Boolean;

procedure Delay(ms : longint);
var TheTime : LongInt;
begin
TheTime := GetTickCount + ms;
 while GetTickCount < TheTime do
  Application.ProcessMessages;
end;

procedure TForm1.Image1MouseUp(Sender: TObject; Button: TMouseButton;
 Shift: TShiftState; X, Y: Integer);
begin
 Close;
end;

procedure TForm1.CSConnect(Sender: TObject; Socket: TCustomWinSocket);
begin
 YNConn:=True; Image1.Picture.Bitmap.LoadFromFile('led2off.bmp');
end;

procedure TForm1.CSDisconnect(Sender: TObject; Socket: TCustomWinSocket);
begin
 YNConn:=False;Image1.Picture.Bitmap.LoadFromFile('led1off.bmp');
end;

procedure TForm1.FormActivate(Sender: TObject);
begin
 YNConn:=False;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
try
  begin
    CS.Address:='127.0.0.1';
    CS.Active:=True;
  end;

// вот тут и выдает ошибку если нет сервера

except on ESocketError do
  begin
    CS.Close;
    caption:='я клиент невижу сервак';
  end;
end;

If Not YNConn Then begin
 Delay(500);
 Button1Click(Sender);
End;
end;


заранее благодарен


Digitman   (2004-09-21 16:03:00) [1]


> и всего то


нет, не "всего-то"

во-первых, признайся что соврал

во-вторых, где-то следом за
ErrorCode:=0
совершенно необходим
Socket.Close


SergeySEM   (2004-09-21 15:41:00) [2]

щас проверил точно все в порядке спасибо за помощь

ErrorCode:=0

и всего то :)


SergeySEM   (2004-09-21 15:40:00) [3]

щас проверил точно все в порядке спасибо за помощь

ErrorCode:=0

и всего то :)


SergeySEM   (2004-09-21 15:40:00) [4]

щас проверил точно все в порядке спасибо за помощь

ErrorCode:=0

и всего то :)


SergeySEM   (2004-09-21 15:40:00) [5]

щас проверил точно все в порядке спасибо за помощь

ErrorCode:=0

и всего то :)


Digitman   (2004-09-21 15:28:00) [6]


> SergeySEM   (21.09.04 15:26) [8]


> окошко вылазеет до onError


не выдумывай


SergeySEM   (2004-09-21 15:26:00) [7]

в том то и прикол что окошко вылазеет до onError


Digitman   (2004-09-21 15:19:00) [8]


> а ServerType --- stNonBlocking


к кл.стороне это не имеет никакого отношения


> ClientType --- ctNonBlocking


обрабатывай событие OnError, его возбуждение после Open как правило есть факт недоступности сервера


SergeySEM   (2004-09-21 15:12:00) [9]


> Digitman
> начни с конкретного и обоснованного тобой выбора значения
> св-ва ClientType


ну у меня ClientType --- ctNonBlocking
а ServerType --- stNonBlocking

а что от этого что-то зависит
мне надо типа контры если сервера нет то дальше ищем если есть показываем или даем команду


Digitman   (2004-09-20 14:59:00) [10]


> SergeySEM   (20.09.04 14:52) [4]


начни с конкретного и обоснованного тобой выбора значения св-ва ClientType


SergeySEM   (2004-09-20 14:52:00) [11]


> Digitman
> проще не заниматься ерундой , а "научить" каждого клиента
> определять сей факт


а можно поподробнее сети только учу


Palladin   (2004-09-18 04:19:00) [12]

Ex ceptions то зачем удалять?


Wistler   (2004-09-18 04:05:00) [13]

Можно залезть внутрь этих компонентов, поудалять все Exeptions. Потом подключаемся к серверу, и прверяем есть подключение или нет, и никаких ошибок.


Digitman   (2004-09-17 16:00:00) [14]


> как клиентов о том что сервер в сети


проще не заниматься ерундой , а "научить" каждого клиента определять сей факт


> так и сервер о том сколько у него клиентов


ну как же ! а то сервер не знает, сколько у него активных клиентов !

а TClientSocket.ClientType, надо понимать, ctBlocking ?


Наверх

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