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

Нужен пример простейшего клиент-серверного приложения

07.06.2010, 20:04. Показов 13279. Ответов 9
Метки нет (Все метки)

Добрый день. Прчитал примеры в MSDN, скачал книжку Сетевое программироване, но понять пока нечего не получается в сетевых приложениях. Помогите написать минимальный код чтобы с компьютера А переслать сообщение компьютеру Б. Желательно используя Ip адреса.
Заранее спасибо.
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
07.06.2010, 20:04
Ответы с готовыми решениями:

Нужен пример клиент-серверного приложения основанный на RPC
Народ, есть у кого пример клиент-серверного приложения основанный на RPC?

Пример клиент-серверного приложения
Может у кого есть пример клиент-сервера передачи текста от клиента к серверу и наоборот? на...

Пример клиент-серверного приложения TCP/IP
Здравствуйте, нужен простой и понятный пример клиент-серверного приложения для передачи данных и...

Нужен пример простейшего приложения
Есть тема создания простейшего приложения в С# может кто нибуть это приложение воссаздать в его...

9
87 / 87 / 26
Регистрация: 04.01.2010
Сообщений: 270
07.06.2010, 20:34 2
Поищите примеры работы с сокетами, их масса
0
2093 / 1257 / 170
Регистрация: 01.02.2009
Сообщений: 2,842
07.06.2010, 20:39 3
Лучший ответ Сообщение было отмечено как решение

Решение

Передача сообщений по протоколу UDP. Среда разработки - Visual Studio 2008
Вложения
Тип файла: rar UDP протокол.rar (79.6 Кб, 563 просмотров)
4
8 / 8 / 1
Регистрация: 17.01.2010
Сообщений: 172
08.06.2010, 21:16  [ТС] 4
Изучил программы. Как из них сделать приложение Клиент- клиент.

Добавлено через 26 минут
Переделал сервер
добавил туда из клиента RichTextBox2 и кнопку отправить. с виртуальной машины на комп сообщение передается без ошибок, а если наоборот то программа зависает. Подскажите как переписать ее.
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
87
88
89
90
91
using System;
using System.ComponentModel;
using System.Net;
using System.Net.Sockets;
using System.Text;
using System.Windows.Forms;
 
namespace UDPServer
{
    public partial class Form1 : Form
    {
        string nameUser = "User1";
        Socket socket;
        EndPoint Rempoint;
        IPEndPoint ipe;
        IPEndPoint ipeCL;
        byte[] buffer = new byte[256];
        string str;
 
        public Form1()
        {
            InitializeComponent();
        }
      
        private void Form1_Load(object sender, EventArgs e)
        {
            // Инициализируем сокет
            // socket = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp);
            // настраиваем параметр соединения
            ipeCL = new IPEndPoint(IPAddress.Broadcast, 5400);
 
 
 
            // инициализируем сокет
            socket = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp);
            // устаавливаем параметры сокета
            // время приема ограничиваем 10 сек.
            socket.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.ReceiveTimeout, 10000);
            // создаем параметр подключения
            ipe = new IPEndPoint(IPAddress.Any, 5400);
            // связываем сокет с параметром подключения
            socket.Bind(ipe);
            // создаем структуру удаленного сокета
            IPAddress ipRem = IPAddress.Any;
            IPEndPoint Rem = new IPEndPoint(ipRem, 0);
            Rempoint = (EndPoint)Rem;
            label1.Text = "Ожидаем данные";
 
            timer1.Enabled = true;
        }
        // кнопка приема данных
        private void button2_Click(object sender, EventArgs e)
        {
            // прием данных от удаленного сокета
            socket.ReceiveFrom(buffer, ref Rempoint);
            // формирование строки сообщения из полученного массива байт
            str = Encoding.Default.GetString(buffer);
            label1.Text = "Прием данных закончен!";
            // отображение сообщения в текстовом поле
            richTextBox1.Text += "\n" + str;
        }
 
        private void button2_Click_1(object sender, EventArgs e)
        {
            socket.Close();
            Application.Exit();
        }
 
        private void DataTransferBtn_Click(object sender, EventArgs e)
        {
            // добавляем в начало сообщение имя пользователя
            string str = nameUser + ":\n" + richTextBox2.Text;
            // разрешение широковещательного адреса
            socket.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.Broadcast, true);
            // формируем байтовый массив для передачи
            byte[] paket = Encoding.Default.GetBytes(str);
            // проверка на размер сообщения
            if (paket.Length > 256)
            {
                MessageBox.Show("Сообщение превышает допустимый размер!\nПопробуйте уменьшить сообщение", "Предупреждение", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
            }
            else
            {
                // отправка сообщения
                socket.SendTo(paket, ipeCL);
                label1.Text = "Передача данных закончена!";
                richTextBox2.Text = "";
            }
        }
    }
}
0
2093 / 1257 / 170
Регистрация: 01.02.2009
Сообщений: 2,842
09.06.2010, 10:45 5
Лучший ответ Сообщение было отмечено как решение

Решение

Для таких целей лучше использовать TCP (так как при использовании tcp происходит поддержка соединения между клиентом и сервером).
В данном примере происходит постоянный обмен между клиентом и сервером.
Вложения
Тип файла: rar tcp.rar (36.6 Кб, 977 просмотров)
5
1268 / 969 / 113
Регистрация: 12.01.2010
Сообщений: 1,971
09.06.2010, 16:31 6
Лучший ответ Сообщение было отмечено как решение

Решение

вот мой вариант udp чата, собственно независимый от серверов
может даже список пользователей показывать

делал в процессе изучения удп протокола для себя, так что там могут ошибки вывалиться в некоторых условиях и за правильность/стиль кода не отвечаю
Вложения
Тип файла: zip Chat.zip (78.0 Кб, 576 просмотров)
4
7 / 7 / 2
Регистрация: 25.04.2014
Сообщений: 23
11.05.2014, 23:31 7
Возможно ли на базе таких чатов написать клиент-серверные части, для обмена файлами(в которых лежат dbase) между сервером и раб. станциями?
А еще интересней вопрос, будет ли работать такое по vpn =))
Просто есть пару серверов , в разных городах интересно синхронизировать их по времени. Сейчас пользуюсь планировщиками + bat(взял\отдал)
Спс
0
0 / 0 / 0
Регистрация: 10.11.2015
Сообщений: 1
22.11.2015, 16:44 8
В сети полно консольных примеров клиент – сервер, всё работает, все радостно их копируют выставляя как свои..
НО нет ни одно полноценно рабочего не консольного, с формами и потоками… а то что есть, чуть копни и глючит со сбоями…
И все довольны.
0
972 / 867 / 349
Регистрация: 26.04.2012
Сообщений: 2,647
22.11.2015, 16:53 9
Что мешает на основе имеющегося кода прикрутить форму и потоки, если они нужны?
0
Эксперт .NET
5376 / 4162 / 1193
Регистрация: 12.10.2013
Сообщений: 12,074
Записей в блоге: 2
22.11.2015, 17:02 10
Цитата Сообщение от Kostik003 Посмотреть сообщение
И все довольны.
Кому надо - тот пишет свое (возможно, на основе того что нашел в сети/в документации), и не парится. У вас какой-то вопрос - так задавайте, вам покажут пример.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
22.11.2015, 17:02

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

Создание клиент-серверного приложения
Начал изучать С# подскажите как сделать приложение клиент и сервер для отправки сообщений (не на...

Работа с сокетами, основы клиент-серверного приложения
Нашел простой пример клиент-серверного приложения на C#: Сервер: // SocketServer.cs using...

Тестирование клиент-серверного приложения без Thread.Sleep ?
Есть пока что небольшой вебсокет-сервер. При покрытии этого сервера NUnit-тестами передо мной...


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

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

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