Форум программистов, компьютерный форум, киберфорум
C# .NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/8: Рейтинг темы: голосов - 8, средняя оценка - 5.00
 Аватар для body90
467 / 344 / 19
Регистрация: 26.05.2009
Сообщений: 2,696

Как красиво организовать клиент-сервер

01.06.2012, 03:16. Показов 1687. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте! Пишу приложение: сервер бесконечно ждет подключения нового клиента, при подключении они начинают слать друг-другу данные. Сервер - безоконное приложение, с клиентом общается по нескольким портам, для каждого из которых хочу выделить по отдельному потоку.
Как сделать, чтоб: 1) одновременно мог быть подключен только один клиент, но при отключении текущего клиента, мог подключиться другой?
2) если клиент исчез (например, закрыли приложение или отключили питание компьютера) сервер начинал ожидать нового.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
01.06.2012, 03:16
Ответы с готовыми решениями:

Клиент-сервер. Можно ли организовать реализацию как на WarcraftIII
Добрый день. Сейчас занимаюсь крупным проектом и обходился всегда без этого. Web + Парсинг всегда спасало работу... Но сейчас возникла...

Как организовать клиент-сервер, а так же передачу и обработку XML
В общем вопрос такой, я не знаю как делать обращение к серверу xml, что-бы я мог отправить и принять его. Какую библиотеку надо подключать...

Организовать взаимодействие типа клиент - сервер
Организовать взаимодействие типа клиент - сервер.Клиенты подключается к первому серверу, передают запрос на получение определенного...

4
 Аватар для body90
467 / 344 / 19
Регистрация: 26.05.2009
Сообщений: 2,696
02.06.2012, 04:26  [ТС]
Неужели никто не может поделиться идеями?
0
 Аватар для sasha0192
51 / 51 / 7
Регистрация: 23.01.2012
Сообщений: 449
02.06.2012, 13:08
2) Клиент после подключения к серверу посылает данные с промежутком, сервер читает и понимает, что клиент онлайн.

Добавлено через 3 минуты
Первое не совсем понял... нужно чтобы больше 2х клиентов одновременно не могло подключится?

Добавлено через 3 минуты
или наоборот, при подключении первого клиента мог бы подключаться и второй?
1
19 / 19 / 1
Регистрация: 16.09.2010
Сообщений: 100
02.06.2012, 14:54
Цитата Сообщение от body90 Посмотреть сообщение
1) одновременно мог быть подключен только один клиент, но при отключении текущего клиента, мог подключиться другой?
на серверном приложении создаешь два класса Server и ClientConnection. В классе Server заведи переменную CanConnect типа bool, которая true когда подключенного клиента нет и false когда есть. В функции где Server в бесконечном цикле принимает клиентов, просто перед тем как установить соединение, проверяй можно ли - CanConnect.

Цитата Сообщение от body90 Посмотреть сообщение
2) если клиент исчез (например, закрыли приложение или отключили питание компьютера) сервер начинал ожидать нового.
перед закрытием клиента в событии Form_Closing нужно отправлять серверу сообщение о желании отключения.
1
 Аватар для body90
467 / 344 / 19
Регистрация: 26.05.2009
Сообщений: 2,696
02.06.2012, 19:56  [ТС]
Попробую пояснить по другому. Всё работает через класс Socket. Вот, например, я клиентом подключаюсь к серверу. Пока я работаю с сервером, другие клиенты не должны иметь возможность подключиться (я так понимаю, что для этого достаточно сделать Socket.Listen(1); ). Проблема в том, что если я, например, выйду из приложения через диспетчер задач (то есть нет возможности послать данные, что я завершаю сеанс и сервер может опять начинать ждать подключения), то сервер так и будет ждать передачи данных от моего клиента не зная, что он отключился, а остальные клиенты (или опять же я), не смогут подключиться.
Как выйти из этой ситуации?

Добавлено через 1 минуту
sasha0192 и ЦеЗарЬ, ответил сразу на все Ваши вопросы.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
02.06.2012, 19:56
Помогаю со студенческими работами здесь

Организовать взаимодействие типа клиент-сервер
Организовать взаимодействие типа клиент-сервер. Клиент делает запрос серверу на выполнение какой-либо команды. Сервер выполняет эту команду...

Клиент-сервер: Как определить, что клиент отключился?
Привет. Есть клиент и сервер, при подключении клиента, на сервере создается класс, который содержит копию сокета и всякую инфу клиента, и...

Клиент-серверное приложение: как определить, что сервер/клиент не отвечает в течении определенного времени
Пишу клиент-серверное приложение. Использую TCPListener и TCPClient. Вопрос: как определить что сервер(клиент) не отвечает в течении...

Сервер на PHP + клиент на C#. Организовать процесс обмена данными клиента через PHP на сервере
Всем привет. Подскажите, как реализовать. Сейчас есть: сервер и клиент на C#. На сервере есть веб-сервис, который использует клиент...

Как организовать клиент сервер, взаимодействующий с БД
Здравствуйте Есть приложения клиент сервер написанной на шарпе. Сервер приложения работает с база данных mssql 2000 (могу поставит и...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru