Передача и принятие объекта List через StreamWriter и StreamReader - C#

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

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

Имеется 2 программы: клиент и сервер. Сообщения строковые передаются без проблем, все получается, а вот мне необходимо передать объект List<string>. Как это будет корректней реализовать? Сервер:
            List<string> ClientList = new List<string>();
 
            swSender = new StreamWriter(tcpClient.GetStream());
            swSender.AutoFlush = true;
 
            swSender.WriteLine(ClientList.ToString());
Клиент:
            List<string> ClientList_temp = new List<string>();
 
            string mes;
            srReceiver = new StreamReader(tcpClient.GetStream());
            mes = srReceiver.ReadLine();
            ClientList_temp  = mes;                                               //как-то типа такого, попроще надо бы передать
            ClientList_temp = srReceiver.ReadLine();                        // так не прокатывает

Решение задачи: «Передача и принятие объекта List через StreamWriter и StreamReader»

textual
Листинг программы
using System;
using System.Collections.Generic;
using System.IO;
using System.Runtime.Serialization.Formatters.Binary;
 
namespace ConsoleApplicationTest {
    public static class Program {
        private static void Main() {
            // Поток, куда записываем и потом считываем
            using ( MemoryStream stream = new MemoryStream() ) {
                // Наш список
                var myData = new List<string> {
                    "str1",
                    "str2",
                    "str3"
                };
 
                // Сериализуем в поток
                BinaryFormatter serializer = new BinaryFormatter();
                serializer.Serialize( stream, myData );
 
                // Устанавливаем текущую позицию в начало потока 
                stream.Seek( 0, 0 );
 
                // Десериализуем из потока
                BinaryFormatter deserializer = new BinaryFormatter();
                var results = (List<string>)deserializer.Deserialize( stream );
 
                // Выводим результат
                foreach ( var result in results ) {
                    Console.WriteLine( result );
                }
            }
 
            Console.ReadKey();
        }
    }
}

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


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

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

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