Как организовать работку клиент-сервера 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);
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д