|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
20.06.2011, 15:33 | #1 |
Форумчанин
Регистрация: 09.06.2011
Сообщений: 147
|
Использование сокетов (Socket class) в программе...
Всем привет! Всегда хотел узнать о том как правильно использовать сокеты!
Вот например есть программа-сервер...неважно для чего, она как и все сервера обслуживает запросы клиентов! естественно чтобы не тормозить основной поток, то сокет будет использоваться в другом потоке....выглядеть это будет примерно так: Socket s = new Socket(.....); ... ... ... while(canListen) { Socket client = s.Accept(); ... ... ... } canListen - переменная, с помощью которой цикл определяет продолжать ли свое выполнение или нет. И вот например нужно приостановить обслуживание запросов клиентов, и сделать это так, чтобы действительно закрыть сокет. Но как? Ведь нельзя его закрыть потому что он находится в режиме приема (Accept()), а при вызове "Shutdown" из под него в основном потоке...возникнет исключение (Exception). Как правильно это сделать? Заранее извените за корявый русский и плохое объяснение))))
У женщин чары образуются из стрингов;
А у программистов наоборот - стринги образуются из чаров; |
20.06.2011, 19:51 | #2 |
Участник клуба
Регистрация: 04.04.2010
Сообщений: 1,554
|
Ну и поймай исключение.
|
21.06.2011, 11:59 | #3 |
Форумчанин
Регистрация: 09.06.2011
Сообщений: 147
|
ну так до сих пор и делаю....просто хотелось узнать насколько это правильно.....и кто как делает. Может есть другой подход написания....)) это ж форум)))
У женщин чары образуются из стрингов;
А у программистов наоборот - стринги образуются из чаров; |
21.06.2011, 12:01 | #4 |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
а как иначе то?
показывать исключения пользователю? это точно не верно. исключения на то и придуманы чтоб обрабатывать через них ошибки. Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
21.06.2011, 12:03 | #5 |
Форумчанин
Регистрация: 09.06.2011
Сообщений: 147
|
пожалуй да! иного выхода нет!
У женщин чары образуются из стрингов;
А у программистов наоборот - стринги образуются из чаров; |
21.06.2011, 13:52 | #6 |
Участник клуба
Регистрация: 04.04.2010
Сообщений: 1,554
|
stalsoft По словам Socket Code Examples в msdn приведено несколько примеров серверов и клиентов на сокетах.
|
21.06.2011, 14:28 | #7 |
Форумчанин
Регистрация: 09.06.2011
Сообщений: 147
|
Спасибо the_deer_one
У женщин чары образуются из стрингов;
А у программистов наоборот - стринги образуются из чаров; |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
[Delphi] Использование ключей в программе | ZePr | Помощь студентам | 10 | 21.01.2013 20:23 |
Использование указателя socket.Data TServerSocket | _PROGRAMM_ | Работа с сетью в Delphi | 0 | 13.02.2011 19:26 |
Использование длл, написанной на С++, в программе на ВБ 6 | Гончий | Общие вопросы C/C++ | 18 | 01.06.2010 19:12 |
Использование системного времени или даты в программе | DuM4uK | Общие вопросы Delphi | 4 | 13.10.2009 15:13 |
raised exception class EIdSocketError with message' Socket Error # 10022 Invalid argument | eldar | Работа с сетью в Delphi | 16 | 08.08.2008 23:49 |