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

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

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

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

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

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

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

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

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

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

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

textual
Листинг программы
public static TheRyuzaki.Network.Server Network = new Server(System.Net.IPAddress.Any, 8095);
 
 
        static void Main(string[] args)
        {
            Network.ClientConnected = OnClientConnected;
            Network.ClientDisconnected = OnClientDisconnected;
            Network.ServerStarted = OnServerStarted;
            Network.ServerStoped = OnServerStoped;
            Network.ClientSendedMessage = OnClientSendedMessage;
 
            while (true)
            {
                var command = Console.ReadLine();
                var ex = command.Split(' ');
                switch (ex[0])
                {
                    case "kick":
                        Network.CloseSession(Convert.ToInt32(ex[1]));
                        break;
                    case "exit":
                        Network.StopServer();
                        Environment.Exit(0);
                        break;
                    case "start":
                        Network.StartServer();
                        break;
                    case "stop":
                        Network.StopServer();
                        break;
                }
            }
        }
        public static void OnServerStarted()
        {
            Console.WriteLine("Сервер успешно запущен.");
        }
        public static void OnServerStoped()
        {
            Console.WriteLine("Сервер успешно остановлен.");
        }
        public static void OnClientConnected(int id_session)
        {
            Console.WriteLine("Новый клиент подключен, ID Session: "+id_session);
        }
        public static void OnClientDisconnected(int id_session, Dictionary<string, object> UserInfo)
        {
            Console.WriteLine("Клиент отключился. Надеемся что он еще вернется.");
        }
        public static void OnClientSendedMessage(int id_session, string message)
        {
            Console.WriteLine("Клиент #" + id_session + ", прислал сообщение: " + message);
        }

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


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

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

14   голосов , оценка 4 из 5
Похожие ответы