Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > C# (си шарп)
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 20.06.2011, 15:33   #1
stalsoft
Форумчанин
 
Регистрация: 09.06.2011
Сообщений: 147
По умолчанию Использование сокетов (Socket class) в программе...

Всем привет! Всегда хотел узнать о том как правильно использовать сокеты!
Вот например есть программа-сервер...неважно для чего, она как и все сервера обслуживает запросы клиентов! естественно чтобы не тормозить основной поток, то сокет будет использоваться в другом потоке....выглядеть это будет примерно так:


Socket s = new Socket(.....);
... ... ...
while(canListen)
{
Socket client = s.Accept();
... ... ...
}

canListen - переменная, с помощью которой цикл определяет продолжать ли свое выполнение или нет.

И вот например нужно приостановить обслуживание запросов клиентов, и сделать это так, чтобы действительно закрыть сокет. Но как? Ведь нельзя его закрыть потому что он находится в режиме приема (Accept()), а при вызове "Shutdown" из под него в основном потоке...возникнет исключение (Exception). Как правильно это сделать?
Заранее извените за корявый русский и плохое объяснение))))
У женщин чары образуются из стрингов;
А у программистов наоборот - стринги образуются из чаров;
stalsoft вне форума Ответить с цитированием
Старый 20.06.2011, 19:51   #2
the_deer_one
Участник клуба
 
Аватар для the_deer_one
 
Регистрация: 04.04.2010
Сообщений: 1,554
По умолчанию

Ну и поймай исключение.
the_deer_one вне форума Ответить с цитированием
Старый 21.06.2011, 11:59   #3
stalsoft
Форумчанин
 
Регистрация: 09.06.2011
Сообщений: 147
По умолчанию

ну так до сих пор и делаю....просто хотелось узнать насколько это правильно.....и кто как делает. Может есть другой подход написания....)) это ж форум)))
У женщин чары образуются из стрингов;
А у программистов наоборот - стринги образуются из чаров;
stalsoft вне форума Ответить с цитированием
Старый 21.06.2011, 12:01   #4
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

а как иначе то?
показывать исключения пользователю? это точно не верно.

исключения на то и придуманы чтоб обрабатывать через них ошибки.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 21.06.2011, 12:03   #5
stalsoft
Форумчанин
 
Регистрация: 09.06.2011
Сообщений: 147
По умолчанию

пожалуй да! иного выхода нет!
У женщин чары образуются из стрингов;
А у программистов наоборот - стринги образуются из чаров;
stalsoft вне форума Ответить с цитированием
Старый 21.06.2011, 13:52   #6
the_deer_one
Участник клуба
 
Аватар для the_deer_one
 
Регистрация: 04.04.2010
Сообщений: 1,554
По умолчанию

stalsoft По словам Socket Code Examples в msdn приведено несколько примеров серверов и клиентов на сокетах.
the_deer_one вне форума Ответить с цитированием
Старый 21.06.2011, 14:28   #7
stalsoft
Форумчанин
 
Регистрация: 09.06.2011
Сообщений: 147
По умолчанию

Спасибо the_deer_one
У женщин чары образуются из стрингов;
А у программистов наоборот - стринги образуются из чаров;
stalsoft вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[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