Передача и принятие объекта 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();
}
}
}