Нужен пример простейшего клиент-серверного приложения - C#
Формулировка задачи:
Добрый день. Прчитал примеры в MSDN, скачал книжку Сетевое программироване, но понять пока нечего не получается в сетевых приложениях. Помогите написать минимальный код чтобы с компьютера А переслать сообщение компьютеру Б. Желательно используя Ip адреса.
Заранее спасибо.
Решение задачи: «Нужен пример простейшего клиент-серверного приложения»
textual
Листинг программы
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 = ""; } } } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д