![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
как пропилинговать сервак [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 ?