Клиент-серверное приложение - 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);
}

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


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

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

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