Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Интернет и сети
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 06.11.2007, 13:50
zNk zNk вне форума
Прохожий
 
Регистрация: 16.01.2007
Сообщения: 39
Репутация: 10
Восклицание вопросы по TClientSocket и TServerSocket

Собственно появился у меня серв, вот терь и проснулось желаение писать проги для работы в инете =)
Собственно более менее изучил принцип работы компонентов TClientSocket и TServerSocket, но вот имеются следующие вопросы:

1. Как программно определить, есть ли связь у клиента с сервером или нет (просто когда происходит разрыв линии, то TClientSocket всё ещё думает что соединён с сервом )
2. Как TServerSocket научить автоматически закрывать сокеты, которые уже давно отконектились от серва?
3. Когда TClientSocket пытается соединится к серву которого нет, то сокет выводит ошибку на экран, как предотвратить выведение этих ошибок вообще??? Try Except не помогает

Жду ответов, надеюсь, что хоть вы поможите
__________________
Ответить с цитированием
  #2  
Старый 06.11.2007, 19:47
zAlexandrz zAlexandrz вне форума
Прохожий
 
Регистрация: 06.11.2007
Сообщения: 1
Репутация: 10
По умолчанию

Еще вопрос по работе с сокетами в связке клиент-сервер.

Код такой


procedure TForm1.SendBtnClick(Sender: TObject);
begin
for i := 1 to 5 do
begin
ClientSocket.Port:=7777
ClientSocket.Address:=ip;
ClientSocket.Active:=true;
end;
end;

procedure TForm1.ClientSocketСlose(Sender: TObject);
begin
ClientSocket.close;
end;


т.е. при нажатии на кнопку клиент долженен по очереди установить и разорвать связь с пятью серверами.

Если без цикла (с одним сервером) то все работает

Во время выполнения процедуры порт открывается, сразу же происхоит переход к процедуре

procedure TForm1.ClientSocketСlose(Sender: TObject);

она обрабатывается, затем возврат обратно в прцедуру

procedure TForm1.SendBtnClick(Sender: TObject);


Порт закрывается, НО, все равно, только после завершения procedure TForm1.SendBtnClick(Sender: TObject);


Но как видно, мне необходимо во время работы процедуры открыть и закрыть порт несколько раз.

что делать ума неприложу :?:
Ответить с цитированием
  #3  
Старый 21.11.2007, 06:14
Nekromant Set'а Nekromant Set'а вне форума
Новичок
 
Регистрация: 12.08.2007
Сообщения: 87
Репутация: 10
По умолчанию

Может всё таки кто нить поможет с сокетами? 0_o
Ответить с цитированием
  #4  
Старый 21.11.2007, 19:50
Аватар для White_Horse
White_Horse White_Horse вне форума
Новичок
 
Регистрация: 28.10.2007
Сообщения: 61
Репутация: 15
По умолчанию

Цитата:
Сообщение от zNk
3. Когда TClientSocket пытается соединится к серву которого нет, то сокет выводит ошибку на экран, как предотвратить выведение этих ошибок вообще??? Try Except не помогает

procedure TForm1.Server1ClientError(Sender: TObject;
Socket: TCustomWinSocket; ErrorEvent: TErrorEvent;
var ErrorCode: Integer);
begin
ErrorCode:=0; // И твоё сообщение об ошибке исчезнет
end;
Ответить с цитированием
  #5  
Старый 21.11.2007, 22:13
zNk zNk вне форума
Прохожий
 
Регистрация: 16.01.2007
Сообщения: 39
Репутация: 10
По умолчанию

спсб... ещё вопрос:
как определить клиенту, имеется ли ещё подключение к серверу или нет?
__________________
Ответить с цитированием
  #6  
Старый 22.11.2007, 19:54
Аватар для White_Horse
White_Horse White_Horse вне форума
Новичок
 
Регистрация: 28.10.2007
Сообщения: 61
Репутация: 15
По умолчанию

Цитата:
Сообщение от zNk
спсб... ещё вопрос:
как определить клиенту, имеется ли ещё подключение к серверу или нет?
Даже не знаю, сделай чтоб при потере соединения выводилось сообщение или можно сделать так чтобы при подключении и отключении клиента, серверу выводилось сообщение в Memo или ещё куда-нибудъ, а так конкретно по твоему вопросу не знаю. Если надо сделать как я написал выше, могу кинуть код...
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 03:39.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter