Как организовать работку клиент-сервера 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);
}