Luk*_*uke 5 c# serialization tcp tcplistener tcpclient
我有一个服务器和客户端使用TcpListener和设置TcpClient.
我想将一个对象发送到我的服务器应用程序进行处理.
我已经发现了using System.Runtime.Serialization以下文档,但是我不想四处寻找我正在以冗长的方式做这件事.
问题:通过TCP流处理和发送对象的最佳方法是什么?
发送和接收.
这是我的对象的一个例子:
// Create a new house to send
house newHouse = new house();
// Set variables
newHouse.street = "Mill Lane";
newHouse.postcode = "LO1 BT5";
newHouse.house_number = 11;
newHouse.house_id = 1;
newHouse.house_town = "London";
Run Code Online (Sandbox Code Playgroud)
假设您有一个类House(在连接的两端都可用),如下所示:
[Serializable]
public class House
{
public string Street { get; set; }
public string ZipCode { get; set; }
public int Number { get; set; }
public int Id { get; set; }
public string Town { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
您可以将类序列化为MemoryStream.然后,您可以在您的TcpClient连接中使用如下:
// Create a new house to send house and set values.
var newHouse = new House
{
Street = "Mill Lane",
ZipCode = "LO1 BT5",
Number = 11,
Id = 1,
Town = "London"
};
var xmlSerializer = new XmlSerializer(typeof(House));
var networkStream = tcpClient.GetStream();
if (networkStream.CanWrite)
{
xmlSerializer.Serialize(networkStream, newHouse);
}
Run Code Online (Sandbox Code Playgroud)
当然,你必须做一些调查才能让程序毫无例外地运行.(例如,检查memoryStream.Length不要大于int,aso),但我希望我给你正确的建议,以帮助你的方式;-)