What is the correct way to send serialized JSON data in C#
I have tried to send data like this:
TcpClient client = new TcpListener(IPAddress.Any, port).AcceptTcpClient();
using StreamWriter writer = new StreamWriter(client.GetStream());
writer.AutoFlush = true;
Object obj = new Object(); // data
string json = JsonConvert.SerializeObject(obj);
writer.writeLine(json);
And receive data like this:
TcpClient client = new TcpClient();
IPEndPoint clientEnpoint = new IPEndPoint(IPAddress.Parse(clientIPTextBox.Text), int.Parse(clientPortTextBox.Text));
client.Connect(clientEnpoint);
using StreamReader reader - new StreamReader(client.GetStream());
string json = reader.readLine();
Obj obj = JsonConvert.DeserializeObject<Obj>(json);
This is a sample of data sent
"{"ClientName":"172.31.224.1:63167","Action":1}"
After write, read, write from server and read, write from client, the last write from server gives the error:
Unable to read data from the transport connection: An existing connection was forcibly closed by the remote host
.