|
0 / 0 / 0
Регистрация: 28.04.2009
Сообщений: 118
|
|
Грамотная реализация клиент-серверного приложения10.05.2009, 21:40. Показов 23664. Ответов 31
Метки нет (Все метки)
Возник вопрос как грамотно реализовать клиент-серверное приложение под Linux'ом. Пока имеется стандартная реализация через потоковые сокеты. Но при некорректном завершении работы клиента сервер подвисает и умирает для внешних запросов. Здесь смысл почему так происходит понятен. Необходимо реализовать грамотную реализацию для устранения этой проблеммы. Слышал про не блокирующие сокеты. Но в эту сторону не хочу копать. Хочется реализовать с помощью процессов либо потоков. Вроде как с помощью функции fork можно делать при каждом запросе копию процесса и работать с каждым запросом в индивидуальном процессе. Либо можно реализовать с помощью потоков. Слышал, что понятие потоков и процессов в linux'е отличается от винды. Вот хочу дельный совет куда начать копать, чтобы не ошибиться маршрутом. Хочется реализовать грамотно и не сложно)). Заранее спасибо.
0
|
|
| 10.05.2009, 21:40 | |
|
Ответы с готовыми решениями:
31
Прокомментировать код клиент-серверного приложения Реализация клиент-серверного соединения Реализация клиент-серверного взаимодействия на C# |
|
60 / 22 / 2
Регистрация: 13.03.2010
Сообщений: 65
|
|
| 15.03.2010, 22:02 | |
|
Не заметил =)
0
|
|
|
4 / 4 / 0
Регистрация: 26.03.2010
Сообщений: 28
|
|
| 26.03.2010, 11:34 | |
|
Решил сделать несколько простеньких сетевых игрушек типа морской бой, шашки и т.д.
Так вот возник вопрос как правильно сделать. Создавать поток на каждое соединение или в цикле по очереди слушать каждый сокет?
0
|
|
|
|
|
| 26.03.2010, 11:39 | |
|
Для начала сделай по простому, т.е. БЕЗ потоков. Внешне это будет подтормаживать, но зато хотя бы как-то поймёшь, как реализовывается сетевая часть, не вникая в премудрости работы с несколькими потоками. А потом можно работать с потоками
0
|
|
|
4 / 4 / 0
Регистрация: 26.03.2010
Сообщений: 28
|
||||||
| 26.03.2010, 14:20 | ||||||
|
Ну вот взял пример с неблокирующими сокетами и начал смотря на код делать )
Я так понимаю Listener - это здесь получает нового клиента и его можно сделать блокирующим и разместить в одном потоке, а уже sock делать неблокирующим и всех клиентов разместить в другом?
0
|
||||||
|
|
||||||
| 26.03.2010, 14:50 | ||||||
|
У меня твой код работает. Во всяком случае telnet к нему приконнектился
Добавлено через 46 секунд Правда сервер всё время пишет "Error: select" Добавлено через 1 минуту Неудивительно - ты условие <=0 затащил вовнутрь последнего параметра select'а
1
|
||||||
|
4 / 4 / 0
Регистрация: 26.03.2010
Сообщений: 28
|
|
| 26.03.2010, 15:11 | |
|
Да, точно сейчас нормально подключился. Спасибо! Буду дальше разбираться.
0
|
|
|
4 / 4 / 0
Регистрация: 26.03.2010
Сообщений: 28
|
||||||
| 18.06.2010, 01:01 | ||||||
|
Подскажите, ну например я использую неблокирующие сокеты, как реализовать принятие и отправку данных?
0
|
||||||
|
Dimrix
|
||
| 20.09.2010, 14:52 | ||
|
|
||
|
0 / 0 / 0
Регистрация: 19.03.2012
Сообщений: 7
|
|
| 22.03.2012, 08:03 | |
|
есть хорошая книжка, моего бывшего преподавателя, там есть решение этой задачи (прозрачное для понимания)
Решений там несколько , зависит от постановленной задачи программы вот линк на книжку в pdf (начинать читать с 133 стр) http://www.stolyarov.info/books/pdf/osintro.pdf
0
|
|
|
1563 / 1041 / 94
Регистрация: 17.04.2009
Сообщений: 2,995
|
|
| 22.03.2012, 08:11 | |
|
Прочитай "UNIX. Разработка сетевых приложений" и не будет вопросов. Уже 4ая страница, а niXman даже еще не предложил asio
0
|
|
|
|
|
| 22.03.2012, 15:50 | |
|
0
|
|
| 22.03.2012, 15:50 | |
|
Реализация клиент-серверного взаимодействия Реализация клиент-серверного приложение Архитектура клиент-серверного приложения Создание клиент-серверного приложения Создание клиент серверного приложения Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Запустил конкурс "тем и промптов для текстовых квестов созданных почти чисто ИИ"
Adler 06.10.2026
Всем привет!
За последние три-четыре дня я создал более 16 текстовых квестовых игр используя преимущественно по одному запросу к ИИ на игру. Мне так понравилось смотреть все ветки/ сцены во всех. . .
|
ИИ не может найти нужный язык в списке
Supersumestria 05.10.2026
Я ему даю вот такое изображение и прошу найти и подчеркнуть немецкий язык.
Возвращает он вот это:
https:/ / i. **********/ vqBWLe2. png
Нужную строчку в 3й колонке просто выдумал. .
Это. . .
|
Новая последняя моя музыка в SUNO
zorxor 05.10.2026
Здравствуйте, дорогие мои друзья! С большой радостью я хотел бы представить вам свою новую последнею музыку, которую сгенерировала мне по моей просьбе нейросеть SUNO. С уважением, zorxor.
Это. . .
|
Nekobox - outbounds[0].transport: unknown transport type: raw
damix 01.10.2026
Фикс ошибки
Правым кликом по серверу -> отладочная информация -> edit
Заменить "net": "raw", на "net": "tcp",
Нажать кнопку reload.
|
|
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js.
В помощники взял Яндекс-Алису.
Было создано три зала на разные интересы.
исторические и ретро
сериал Хичкок. . .
|
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
|
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#.
Название изменил на ColorStep.
Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
|
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами:
- ВидТО (СправочникСсылка. ВидыТО);
- ВидГСМ. . .
|