Форум программистов, компьютерный форум, киберфорум
Наши страницы
C# для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.57/14: Рейтинг темы: голосов - 14, средняя оценка - 4.57
Odemwingie
0 / 0 / 0
Регистрация: 15.02.2012
Сообщений: 7
#1

Клиент-сервер для курсовой, как реализовать

15.02.2012, 02:49. Просмотров 2466. Ответов 7
Метки нет (Все метки)

Помогите пожалуйста. В C# практически новичок, только начал осваивать. Но необходимо сделать курсовой проект. Задание большое, но самое главное реализовать клиент-серверное взаимодействие, остальное вроде бы я представляю.
Клиент-серверное взаимодействие должно работать по следующему принципу:
1) - Клиент: При запуске клиентской части программа в цикле ищет сервер (серверная часть приложения естественно на другой машине в локальной сети) и пытается к нему подключится. Если подключение произошло, то цикл останавливается. При отключении или потери связи с сервером, цикл попыток подключения запускается вновь.
2) - Сервер: При подключении клиента данные о нем (айпишник + имя компьютера) добавляются в список (к примеру listView). При потери связи с клиентом запись из списка удаляется. Таким образом в списке отображаются только подключенные к серверу в данный момент клиенты.
3) Необходимо реализовать передачу данных от сервера к подключенному клиенту и наоборот.

В принципе какие-то попытки реализовать сию систему я сделал. Но работает только подключение и то один раз - лишь при запуске клиентской программы. При перезапуске серверной части клиентская новый сервер не находит. И как реализовать обнаружение клиентом потери связи с сервером для меня загадка. Как сделать отключение клиента с последующим удалением его из списка на сервере я тоже не ведаю. В результате при нескольких запусках клиентской части получаю несколько одинаковых записей на сервере, то есть обнаружение отключения клиента тоже отсутствует.

Буду рад любой помощи. Надеюсь кто-нибудь откликнется на этот крик души нуба)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.02.2012, 02:49
Ответы с готовыми решениями:

Клиент-Сервер: как реализовать
Во общем есть Сервер на Ansi-C Задача:нужно написать клиента C# Данные...

Клиент-сервер. Как в многопользовательском чате реализовать личные сообщения
Console.WriteLine(Func.ToDateTime() + "Server started."); ...

Можно ли реализовать сервер и клиент в одном приложении
Вот пишу программу, обмена сообщениями между 2 приложениями. Хочу сделать что...

Реализовать взаимодействие клиент-сервер с использованием задач (Task)
Реализовать ситуацию взаимодействия по типу клиент-сервер с использованием...

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

7
streamstr
22 / 22 / 5
Регистрация: 07.02.2010
Сообщений: 67
15.02.2012, 08:44 #2
Почитай/поищи примеры использования Windows Communication Foundation (WCF)
0
Odemwingie
0 / 0 / 0
Регистрация: 15.02.2012
Сообщений: 7
15.02.2012, 13:03  [ТС] #3
А если на сокетах?
0
Celly
129 / 130 / 12
Регистрация: 23.01.2011
Сообщений: 265
Завершенные тесты: 1
15.02.2012, 14:32 #4
Два класса:
System.Net.Sockets.TcpListener
System.Net.Sockets.TcpClient
Открываете MSDN http://msdn.microsoft.com/ru-ru/libr...plistener.aspx
и читаете документацию и примеры кода...
0
Adeptus
6 / 6 / 6
Регистрация: 23.11.2009
Сообщений: 71
19.02.2012, 19:53 #5
В документации, которую предоставил Celly, есть циклы
C#
1
2
3
4
while(true) 
{
...
}
Так что не забудь засунуть их в отдельный поток, а то форма зависнет.
0
Odemwingie
0 / 0 / 0
Регистрация: 15.02.2012
Сообщений: 7
22.02.2012, 00:26  [ТС] #6
Спасибо, всем! Потихоньку стал въезжать и даже что-то выходит, но не могу реализовать отслеживание отключения клиентов на сервере и наоборот - отключения сервера на клиенте. В результате в списке на сервере куча клиентов, которые реально не в сети и клиент тоже никак не реагирует когда я вырубаю сервер... Подскажите пожалуйста или если можно скиньте пример как реализовать отслеживание. Чтоб сервер сразу видел что клиент отрубился и чтоб клиент понимал и реагировал на отключение сервера.
0
daruwanov
74 / 55 / 8
Регистрация: 10.03.2011
Сообщений: 354
22.02.2012, 01:41 #7
Так а что если на сервере через определенные промежутки времени опрашивать всех клиентов? отправил запрос - получил ответ - клиент на месте все хорошо, отправил ответ не получил..(ШЕФ все пропало...)- на самом деле пропал только клиент...значит удаляем его из базы....из списка...


и второе если клиент потерял связь...и сразу нашел(тоесть вероятность что сервер не успел его удалить...) ну или просто подключился то проверяем перед добавлением в список - есть ли такая запись? если есть то игнорим добавление если нету уже - добавляем.. как то так...

если клиент отключается логически - то посылаем запрос -и сервер удаляет запись
0
Odemwingie
0 / 0 / 0
Регистрация: 15.02.2012
Сообщений: 7
22.02.2012, 16:42  [ТС] #8
а если не опрашивать постоянно, а именно как-то фиксировать факт разрыва соединения? или так нельзя?
0
22.02.2012, 16:42
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.02.2012, 16:42

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

Сервер(-клиент) для чата
Всем доброго времени суток! Решил сделать чат(windows form C#), но не знаю как...

Клиент сервер для глобальной сети на С#
Дело такое, нужно сделать сервер, который будет висеть на каком-нибуть...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru