Mam klase Dane:
public class Dane
{
public String Imie{ get; set; }
public String Nazwisko { get; set; }
}
I kod dla servera:
class Program
{
static async void Main(string[] args)
{
TcpListener server = new TcpListener(IPAddress.Parse("127.0.0.1"), 8080);
server.Start();
while (true)
{
Console.WriteLine("Waiting for client");
TcpClient client = await server.AcceptTcpClientAsync();
var ar = Deserializacja<Dane[]>(client.GetStream());
Console.WriteLine(ar[0].ToString());
}
}
public static T Deserializacja<T>(Stream stream)
{
JArray arr = DeserializeFromStream<JArray>(stream);
return arr.ToObject<T>();
}
public static T DeserializeFromStream<T>(Stream stream)
{
var sr = new StreamReader(stream);
var jsonTextReader = new JsonTextReader(sr);
return (T)new JsonSerializer().Deserialize(jsonTextReader);
}
}
I klienta:
class Program
{
static void Main(string[] args)
{
TcpClient client = new TcpClient();
client.ConnectAsync(IPAddress.Parse("127.0.0.1"), 8080);
Dane[] td = new Dane[1];
Dane d = new Dane();
d.Imie = "LLL"; d.Nazwisko = "BBB";
td[0] = d;
Serializacja<Dane[]>(client.GetStream());
}
public static void Serializacja<T>(Stream stream)
{
var sw = new StreamWriter(stream);
var jsonTextWriter = new JsonTextWriter(sw);
JsonConvert.SerializeObject(jsonTextWriter, new JsonSerializerSettings()
ReferenceLoopHandling = ReferenceLoopHandling.Ignore
});
}
}
W kliencie wywala mi błąd: 'The operation is not allowed on non-connected sockets.' Co robie źle?