Серверное приложение, сокеты - C#
Формулировка задачи:
Доброго времени суток.
Есть код простого серверного приложения:
как сделать так, чтобы к серверу могло подключаться n-ное количествое клиентов? пробовал - но ничего не выходит.
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.IO; using System.Net.Sockets; using System.Net; using System.Threading; namespace serv { class Program { public static Socket serv; static void Main(string[] args) { //настраивает сокет serv = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); // задаем ip адреса и порт IPEndPoint point = new IPEndPoint(IPAddress.Any, 777); serv.Bind(point); Console.WriteLine("777 is waitng for u"); serv.Listen(10); //запускаем обработчик входящих-исходящих данных Server(); } static void Server() { while (true) { Socket handle = serv.Accept(); string data = null; while (true) { //если клиент приконнектился - пишем приветствие Console.WriteLine("Client connected"); handle.Send(System.Text.Encoding.Default.GetBytes("Hello!")); while (true) { try { byte[] bytes = new byte[1024]; int i = handle.Receive(bytes); data = System.Text.Encoding.Default.GetString(bytes, 0, i);//полученная строка if (data.Length == 0) { handle.Send(System.Text.Encoding.Default.GetBytes("")); } //в цикле переделываем входящую строку в верхний регистр else { Console.WriteLine("Text rec.: {0}", data); data = data.ToUpper();//<== //..и отсылаем обратно в клиент handle.Send(System.Text.Encoding.Default.GetBytes(data)); if (data == "terminate_client_connection") { break; } } } catch { break; } } break; } handle.Shutdown(SocketShutdown.Both); handle.Close(); Console.WriteLine("Client disconnected"); } } } }
Thread t1 = new Thread(new ThreadStart(Server)); t1.Start();
Решение задачи: «Серверное приложение, сокеты»
textual
Листинг программы
Thread sub = new Thread(new ThreadStart(SubServ)); sub.Start(handle);
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д