Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Сети";
Текущий архив: 2004.02.25;
Скачать: [xml.tar.bz2];

Вниз

Про Socket   Найти похожие ветки 

 
samalex   (2003-12-18 14:19) [0]

Уважаемые Знатоки!!!

Написаны программы, использующие для обмена данными сокеты. Серверная программа при помощи ServerSocket рассылает периодически данные подсоединенным ClientSocket.
Вопрос - как ClientSocket узнать, что связи с ServerSocket нет (сеть оборвана или ServerSocket выключили ...). Желательно, стандартными средствами.


 
Digitman   (2003-12-18 14:23) [1]

обрабатывать событие OnError, OnDisconnect и исключения, возникающие при вызове методов приема / передачи


 
Fredericco   (2003-12-18 14:33) [2]


> сеть оборвана

Стандартных средств - нет. Надо самому организовывать проверку на "живучесть".


 
samalex   (2003-12-18 14:56) [3]

Digitman
Я это уже пробовал. Выключаю ServerSocket, а у ClientSocket OnError, OnDisconnect - нет реации.


 
Fredericco   (2003-12-18 14:58) [4]

2 samalex (18.12.03 14:56) [3]
Дык, перед выключением сервера делай всем клиентам Disconnect.


 
Digitman   (2003-12-18 14:59) [5]

если ClientSoccket.ClientType = ctNonBlocking, то быть того не может, чтобы при ServerSocket.Close клиент не получил OnDisconnect()


 
Digitman   (2003-12-18 15:02) [6]


> Выключаю ServerSocket


ну , разумеется, если под этим подразумевать нажатие кнопки Power на сист.блоке, то у клиента, не выполняющего в этот момент никаких гнездовых операций, никаких сигналов об "отвале" сервера не будет)


 
able   (2003-12-18 15:03) [7]

Используй try...except, и пингуй сервак..


 
samalex   (2003-12-18 15:05) [8]

Fredericco ©
Disconnect - это что? команда?
А если программа зависла?

Digitman ©
Да ClientSoccket.ClientType = ctNonBlocking, правда клиент и сервер работают на одном компе ... это может влиять?


 
Digitman   (2003-12-18 15:08) [9]


> это может влиять?


нет, не может

если клиент успешно подключился к серверу и после этого в серверном приложении выполнена строка ServerSocket.Close, то клиент обязательно получит событие OnDisconnect()


 
samalex   (2003-12-18 15:26) [10]

Digitman ©
Спасибо, заработало ...


 
Digitman   (2003-12-18 15:39) [11]

Удалено модератором
Примечание: Оффтоп...


 
Fredericco   (2003-12-18 16:06) [12]

samalex (18.12.03 15:05) [8]
Disconnect - это метод.


 
Mouse   (2003-12-18 19:52) [13]

Извините за глупый вопрос, Это вы про компонеты
TCPServer(Socket)/TCPClient(Socket) говорили или про что?


 
Verg   (2003-12-19 13:01) [14]


> Серверная программа при помощи ServerSocket рассылает периодически
> данные подсоединенным ClientSocket.


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


 
Fredericco   (2003-12-19 13:41) [15]

2 Mouse (18.12.03 19:52) [13]
Нет, про TClient(Server)Socket.



Страницы: 1 вся ветка

Форум: "Сети";
Текущий архив: 2004.02.25;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.47 MB
Время: 0.032 c
3-79626
Крутыш
2004-02-01 15:44
2004.02.25
DBF+ADO


8-80026
Sniper--Max
2003-10-23 06:56
2004.02.25
Как нажать на кнопку под моей формой?


3-79650
guest_Dmitry
2004-01-31 12:45
2004.02.25
Access через ADO - логин и пароль?


1-79859
anatolyk
2004-02-06 12:45
2004.02.25
Proxies.dcu


4-80341
Alternative
2003-12-18 13:58
2004.02.25
Remove Hotkey





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский