Клиент-серверное приложение - C# (180714)
Формулировка задачи:
Клиент записывает текст в файл и отправляет его серверу. сервер записывает данный текст в обратном порядке записывает в файл и отправляет клиенту. клиент получает файл считывает результат и выводит на экран.
Клиент:
Сервер:
Клиент записывает текст в файл и вроде как его отправляет. сервер в свою очередь переворачивает текст. но при отправке результата клиенту происходит ошибка
Листинг программы
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- using System.Net;
- using System.Net.Sockets;
- using System.IO;
- namespace клиент
- {
- class Program
- {
- static void Main(string[] args)
- { //создание сокета
- Socket s1 = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
- IPAddress adr = Dns.Resolve("localhost").AddressList[0];
- // создание конечной точки с указанием параметров соединения
- IPEndPoint ipEnd = new IPEndPoint(adr, 8086);
- //соединение с сервером
- s1.Connect(ipEnd);
- Console.WriteLine("Соединение установлено.");
- string str = null;
- {
- Console.WriteLine("Введите фразу");
- str = Console.ReadLine();
- using (FileStream fstream = new FileStream(@"C:\note.txt", FileMode.OpenOrCreate))
- {
- // преобразуем строку в байты
- byte[] array = System.Text.Encoding.Default.GetBytes(str);
- // запись массива байтов в файл
- fstream.Write(array, 0, array.Length);
- Console.WriteLine("Текст записан в файл");
- }
- // буфер для отправляемых данных
- byte[] d = Encoding.ASCII.GetBytes(str);
- // отправка данных
- s1.Send(d);
- }
- Console.WriteLine("Фраза отправлена");
- byte[] R = new byte[1024]; // буфер для полученных данных из сети //получение результата
- s1.Receive(R);
- string textFromFile;
- using (FileStream fstream = File.OpenRead(@"C:\note1.txt")) //записать в другой файл и прописать путь сохзранения файла
- {
- // преобразуем строку в байты
- byte[] array = new byte[fstream.Length];
- // считываем данные
- fstream.Read(array, 0, array.Length);
- // декодируем байты в строку
- textFromFile = System.Text.Encoding.Default.GetString(array);
- Console.WriteLine("Текст из файла: {0}", textFromFile);
- }
- Console.WriteLine("Результат: {0}", Encoding.ASCII.GetString(R));
- Console.ReadLine();
- s1.Close();
- }
- }
- }
Листинг программы
- using System;
- using System.Collections.Generic;
- using System.Text;
- using System.Net;
- using System.Net.Sockets;
- using System.IO;
- namespace Server1
- {
- class Program
- {
- static void Main(string[] args)
- { //создание сокета
- Socket Listener = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
- IPAddress adr = Dns.Resolve("localhost").AddressList[0];
- //создание конечной точки с параметрами соединения
- IPEndPoint ipEnd = new IPEndPoint(adr, 8086);
- Listener.Bind(ipEnd);
- // прослушивание запросов о соединении
- Listener.Listen(10);
- Console.WriteLine("Ожидание соединения...");
- Socket s = Listener.Accept();
- // буфер для получаемых данных
- byte[] bufR = new byte[1024];
- string sum; string a;
- string textFromFile;
- { //получение данных ив сети
- s.Receive(bufR);
- // преобразование в строку из типа данных байт
- using (FileStream fstream = File.OpenRead(@"C:\note.txt"))
- {
- // преобразуем строку в байты
- byte[] array = new byte[fstream.Length];
- // считываем данные
- fstream.Read(array, 0, array.Length);
- // декодируем байты в строку
- textFromFile = System.Text.Encoding.Default.GetString(array);
- Console.WriteLine("Текст из файла: {0}", textFromFile);
- }
- sum = textFromFile;
- a = sum;
- }
- //буфер для отправляемых данных
- string text = a;
- char[] letters = text.ToCharArray();
- Array.Reverse(letters);
- text = String.Concat(letters);
- // запись в файл
- using (FileStream fstream = new FileStream(@"C:\note.txt", FileMode.OpenOrCreate))
- {
- // преобразуем строку в байты
- byte[] bufS = Encoding.ASCII.GetBytes(text.ToString());
- // запись массива байтов в файл
- fstream.Write(bufS, 0, bufS.Length);
- Console.WriteLine("Текст записан в файл");
- //отправка результата
- s.Send(bufS);
- Console.WriteLine("Результат :{0} отправлен", text);
- Console.ReadLine();
- s.Close();
- }
- }
- }
- }
Решение задачи: «Клиент-серверное приложение»
textual
Листинг программы
- byte[] R = new byte[1024]; // буфер для полученных данных из сети //получение результата
- s1.Receive(R);
- string textFromFile;
- using (FileStream fstream = File.Create(@"C:\note1.txt")) //записать в другой файл и прописать путь сохзранения файла
- {
- // преобразуем строку в байты
- // byte[] array = new byte[fstream.Length];
- // считываем данные
- fstream.Write(R, 0, R.Length);
- // декодируем байты в строку
- textFromFile = System.Text.Encoding.Default.GetString(R);
- Console.WriteLine("Текст из файла: {0}", textFromFile);
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д