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