Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.50/8: Рейтинг темы: голосов - 8, средняя оценка - 4.50
0 / 0 / 0
Регистрация: 18.04.2014
Сообщений: 20
1

Реализовать клиент серверное приложение

08.11.2015, 14:08. Показов 1642. Ответов 7
Метки нет (Все метки)

Здраствуйте,дали задание реализовать клиент серверное приложение:
Реализовать с клиента: просмотр словаря по алфавиту, поиск введенного термина по слову и по букве, добавление термина, удаление термина, редактирование.
Вся информация хранится на сервере.
Может у кого нибудь есть что нибудь похожее,или кто нибудь подскажет как сделать?
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
08.11.2015, 14:08
Ответы с готовыми решениями:

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

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

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

Клиент-серверное приложение
Народ, у меня не хочет работать приложение. Скажите, что я делаю не так? Будет здорово, если мой...

7
Эксперт .NET
5374 / 4160 / 1193
Регистрация: 12.10.2013
Сообщений: 12,073
Записей в блоге: 2
08.11.2015, 14:25 2
Цитата Сообщение от Skirlee Посмотреть сообщение
кто нибудь подскажет как сделать?
Стандартная связка: БД <->Сервер <-> Клиент.
Реализовать можно, к примеру, на основе WCF (проще всего). Тип БД - на усмотрение, смотря где будет размещаться сервер.
0
0 / 0 / 0
Регистрация: 18.04.2014
Сообщений: 20
08.11.2015, 14:39  [ТС] 3
Спасибо,но есть какой нибудь практический пример,самый банальный?
0
Эксперт .NET
5374 / 4160 / 1193
Регистрация: 12.10.2013
Сообщений: 12,073
Записей в блоге: 2
08.11.2015, 14:42 4
Цитата Сообщение от Skirlee Посмотреть сообщение
есть какой нибудь практический пример,самый банальный?
Конкретно касаемо вашей задачи - нет, поскольку она учебная и реализовывать мне такое не было необходимости.
Можно сделать пример, если надо. Я так понимаю, на сервере просто хранится набор разных слов, а клиент выбирает по определенному критерию. Верно?
0
0 / 0 / 0
Регистрация: 18.04.2014
Сообщений: 20
08.11.2015, 14:48  [ТС] 5
Да всё верно,буду очень благодарен,если поможете...
0
Эксперт .NET
5374 / 4160 / 1193
Регистрация: 12.10.2013
Сообщений: 12,073
Записей в блоге: 2
08.11.2015, 15:16 6
Цитата Сообщение от Skirlee Посмотреть сообщение
если поможете...
Если только совсем чуть-чуть)))
Сейчас сделаю пример.
0
0 / 0 / 0
Регистрация: 18.04.2014
Сообщений: 20
08.11.2015, 15:24  [ТС] 7
Я не прошу сделать за меня всё,какой тогда смысл в обучении,просто мне нужно понять,что мне следует почитать,выучить,чтобы в этом разобраться,чтобы сделать данное задание,тем более,как я понимаю оно не трудное,в плане теории я выучил всё хорошо,но в плане практике я не нашёл достойных примеров,которые лично мне,помогут разобраться,поэтому и написал здесь...
0
Эксперт .NET
5374 / 4160 / 1193
Регистрация: 12.10.2013
Сообщений: 12,073
Записей в блоге: 2
08.11.2015, 15:52 8
Лучший ответ Сообщение было отмечено Ev_Hyper как решение

Решение

Цитата Сообщение от Skirlee Посмотреть сообщение
как я понимаю оно не трудное
Ну как сказать... К примеру, вот реализация службы.
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
 
using System.IO;
using System.Data;
using System.Data.SQLite;
using System.ServiceModel;
 
[ServiceBehavior(InstanceContextMode=InstanceContextMode.PerCall)]
class MyService : IContract {
    private readonly string CONNECT_STR = string.Empty;
    public MyService() {
        CONNECT_STR = string.Format("Data Source={0}", Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Database.db"));
        if (!File.Exists(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Database.db"))) {
            throw new FaultException("Database file error!");
        }
    }
    public string[] GetAllWords(bool ordered) {
        try {
            List<string> temp = new List<string>();
            using (SQLiteConnection cnn = new SQLiteConnection(CONNECT_STR)) {
                cnn.Open();
                string selectStr = "SELECT * FROM words";
                using (SQLiteCommand cmd = new SQLiteCommand(selectStr, cnn)) {
                    using (SQLiteDataReader dr = cmd.ExecuteReader()) {
                        while (dr.Read()) {
                            temp.Add((string)dr["word"]);
                        }
                    }
                }
            }
            return ordered ? temp.ToArray() : temp.OrderBy(s => s).ToArray();
        }
        catch (Exception ex) {
            ExceptionDetail detail = new ExceptionDetail(ex);
            FaultException<ExceptionDetail> error = new FaultException<ExceptionDetail>(detail, ex.Message);
            throw error;
        }
    }
 
    public string[] GetWordsByWord(string word) {
        return this.GetAllWords(false).Where(s => s == word).ToArray();
    }
 
    public string[] GetWordsByChar(char ch) {
        return this.GetAllWords(false).
            Where(s => s.StartsWith(ch.ToString(), StringComparison.InvariantCultureIgnoreCase)).
            ToArray();
    }
 
    public void AddWord(string word) {
        try {
            string insertStr = string.Format("INSERT INTO words VALUES('{0}')", word);
            using (SQLiteConnection cnn = new SQLiteConnection(CONNECT_STR)) {
                cnn.Open();
                using (SQLiteCommand cmd = new SQLiteCommand(insertStr, cnn)) {
                    cmd.ExecuteNonQuery();
                }
            }
        }
        catch (Exception ex) {
            ExceptionDetail detail = new ExceptionDetail(ex);
            FaultException<ExceptionDetail> error = new FaultException<ExceptionDetail>(detail, ex.Message);
            throw error;
        }
    }
 
    public void DeleteWord(string word) {
        throw new NotImplementedException();
    }
}
[ServiceContract]
interface IContract {
    [OperationContract]
    string[] GetAllWords(bool ordered);
    [OperationContract]
    string[] GetWordsByWord(string word);
    [OperationContract]
    string[] GetWordsByChar(char ch);
    [OperationContract]
    void AddWord(string word);
    [OperationContract]
    void DeleteWord(string word);
}
А вот запуск хоста службы.
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
 
using System.ServiceModel;
using System.ServiceModel.Channels;
using System.ServiceModel.Description;
 
namespace Test.Server {
    class Program {
        static void Main(string[] args) {
            using (ServiceHost host = new ServiceHost(typeof(MyService),new Uri("http://localhost:8080/MyService"))) {
                host.AddServiceEndpoint(typeof(IContract), new BasicHttpBinding(), "");
                ServiceMetadataBehavior behavior = host.Description.Behaviors.Find<ServiceMetadataBehavior>();
                if (behavior == null) {
                    behavior = new ServiceMetadataBehavior() { HttpGetEnabled = true };
                    host.Description.Behaviors.Add(behavior);
                }
                host.AddServiceEndpoint(typeof(IMetadataExchange), MetadataExchangeBindings.CreateMexHttpBinding(), "mex");
                host.Opening += new EventHandler(host_Opening);
                host.Opened += new EventHandler(host_Opened);
                host.Open();
                Console.ReadLine();
            }
        }
 
        static void host_Opened(object sender, EventArgs e) {
            Console.WriteLine("Service is ready!");
        }
 
        static void host_Opening(object sender, EventArgs e) {
            Console.WriteLine("Opening service......");
        }
    }
}
В архиве клиент и сервер, сначала запустить сервер (это консоль), как загрузится, потом пользоваться клиентом.
Реализовал только добавление по слову и вывод всех слов из БД, дальше уже, думаю, сделаете сами.
Тип используемой БД - SQLite, мне она привычная.
Вложения
Тип файла: rar Server_Client.rar (1.05 Мб, 25 просмотров)
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
08.11.2015, 15:52

Клиент-Серверное приложение на C#
Доброго времени суток. Возможно я буду не первым кто задает подобны вопрос, но все же: подскажите...

Клиент-серверное приложение
Как создать Клиент-серверное приложение чтоби бил 1 сервер и возможность подключения к нему...

Клиент-серверное приложение
Создала клиент-серверное приложение.У меня код клиента в одном проекте,код сервера в другом.Скиньте...

Консольное клиент серверное приложение
Здравствуйте. Возник вопрос, как создать консольное клиент серверное приложение,которое должно...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru