Главная страница
    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.03 c
14-80188
Knight
2004-02-02 01:50
2004.02.25
Кто желает разместить свои ссылки на моём голимом сайте...


3-79566
Arthur1
2004-01-29 13:39
2004.02.25
Как вставить в DBImage1 картинку программным путем?


14-80198
Delpher_Gray
2004-01-22 14:55
2004.02.25
Зацениваем сайты о программировании в Delphi !


1-79731
чайник1
2004-01-23 13:31
2004.02.25
Как отловить нажата ли кнопка Button


14-80291
Soft
2004-02-01 12:28
2004.02.25
Ученые раскрыли тайну русского алкоголизма





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский