Как организовать работку клиент-сервера TCP Socket - C#

Узнай цену своей работы

Формулировка задачи:

Написать 3 программы, работающие по протоколу TCP.

Первая (клиент)

- запрашивает список файлов на сервере. После получения списка файлов, запрашивает нужный файл. Указывается IP и порт сервера, а так же IP и порт клиент-сервера

Вторая (сервер)

- предоставляет список имеющихся файлов. Отправляет требуемый файл. Работает на определенном порту.

Третья (клиент - сервер)

- программа посредник, передает данные от клиента к серверу, и от сервера клиенту. У данной программы имеется Кеш, размером 5 мегабайт. Если запрашиваемый файл клиентом есть на клиент-сервере, то запрос обрабатывается и файл передаётся от клиент-сервера клиенту. Среда разработки С#. Запрещается использовать готовые компоненты. Организовать передачу данных используя сокеты. Как написать клиента и сервера отдельно вопросов нет, а как реализовать клиент-сервера непонятно. У кого какие идеи? Заранее благодарен!

Решение задачи: «Как организовать работку клиент-сервера TCP Socket»

textual
Листинг программы
  1. public static TheRyuzaki.Network.Server Network = new Server(System.Net.IPAddress.Any, 8095);
  2.  
  3.  
  4.         static void Main(string[] args)
  5.         {
  6.             Network.ClientConnected = OnClientConnected;
  7.             Network.ClientDisconnected = OnClientDisconnected;
  8.             Network.ServerStarted = OnServerStarted;
  9.             Network.ServerStoped = OnServerStoped;
  10.             Network.ClientSendedMessage = OnClientSendedMessage;
  11.  
  12.             while (true)
  13.             {
  14.                 var command = Console.ReadLine();
  15.                 var ex = command.Split(' ');
  16.                 switch (ex[0])
  17.                 {
  18.                     case "kick":
  19.                         Network.CloseSession(Convert.ToInt32(ex[1]));
  20.                         break;
  21.                     case "exit":
  22.                         Network.StopServer();
  23.                         Environment.Exit(0);
  24.                         break;
  25.                     case "start":
  26.                         Network.StartServer();
  27.                         break;
  28.                     case "stop":
  29.                         Network.StopServer();
  30.                         break;
  31.                 }
  32.             }
  33.         }
  34.         public static void OnServerStarted()
  35.         {
  36.             Console.WriteLine("Сервер успешно запущен.");
  37.         }
  38.         public static void OnServerStoped()
  39.         {
  40.             Console.WriteLine("Сервер успешно остановлен.");
  41.         }
  42.         public static void OnClientConnected(int id_session)
  43.         {
  44.             Console.WriteLine("Новый клиент подключен, ID Session: "+id_session);
  45.         }
  46.         public static void OnClientDisconnected(int id_session, Dictionary<string, object> UserInfo)
  47.         {
  48.             Console.WriteLine("Клиент отключился. Надеемся что он еще вернется.");
  49.         }
  50.         public static void OnClientSendedMessage(int id_session, string message)
  51.         {
  52.             Console.WriteLine("Клиент #" + id_session + ", прислал сообщение: " + message);
  53.         }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

14   голосов , оценка 4 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы