C# 如何在TCP套接字中发送变量/对象?
如何使用TCP套接字在LAN中将变量/对象/数据从一个程序发送到另一个程序?特别是,我想发送像TreeNode和ListViewItem这样的变量。我该怎么做?发送方程序如何将变量转换为可以发送到LAN中另一个程序的形式?接收方程序如何将发送的变量恢复为原始形式 编辑:在不再可用的网站上找到以下代码,并请求删除该链接C# 如何在TCP套接字中发送变量/对象?,c#,sockets,tcp,C#,Sockets,Tcp,如何使用TCP套接字在LAN中将变量/对象/数据从一个程序发送到另一个程序?特别是,我想发送像TreeNode和ListViewItem这样的变量。我该怎么做?发送方程序如何将变量转换为可以发送到LAN中另一个程序的形式?接收方程序如何将发送的变量恢复为原始形式 编辑:在不再可用的网站上找到以下代码,并请求删除该链接 // Convert an object to a byte array private byte[] ObjectToByteArray(Obje
// Convert an object to a byte array
private byte[] ObjectToByteArray(Object obj)
{
if (obj == null)
return null;
BinaryFormatter bf = new BinaryFormatter();
MemoryStream ms = new MemoryStream();
bf.Serialize(ms, obj);
return ms.ToArray();
}
// Convert a byte array to an Object
private Object ByteArrayToObject(byte[] arrBytes)
{
MemoryStream memStream = new MemoryStream();
BinaryFormatter binForm = new BinaryFormatter();
memStream.Write(arrBytes, 0, arrBytes.Length);
memStream.Seek(0, SeekOrigin.Begin);
Object obj = (Object)binForm.Deserialize(memStream);
return obj;
}
您可以将数据序列化为字节数组,然后发送该数组?然后,接收器程序将在另一端反序列化数据。您可以将数据序列化为字节数组,然后发送该数组?然后,接收器程序将在另一端对数据进行反序列化。这称为序列化,它有多种类型。有些类型支持某些类型的数据,有些类型提供比压缩比更高的速度,有些类型提供比速度更高的压缩比
JSON.NET、谷歌协议缓冲区、YaxLib……有很多,请随意选择。有些比其他更容易使用。我推荐使用JSON.NET,因为可能会有更多的在线教程,而且在调试过程中,人们可以阅读它。它被称为序列化,有很多种类型。有些类型支持某些类型的数据,有些类型提供比压缩比更高的速度,有些类型提供比速度更高的压缩比
JSON.NET、谷歌协议缓冲区、YaxLib……有很多,请随意选择。有些比其他更容易使用。我推荐使用JSON.NET,因为在线上可能有更多关于JSON.NET的教程,而且在调试过程中,它可以供人阅读。这称为序列化。你可能应该好好读一读。请不要在标题的末尾加上像“C#”这样的词。这就是标签的作用。@JohnSaunders抱歉。我只是说得很具体。我不知道我做得太过分了,没问题。现在你知道了。只需使用标记即可。这称为序列化。你可能应该好好读一读。请不要在标题的末尾加上像“C#”这样的词。这就是标签的作用。@JohnSaunders抱歉。我只是说得很具体。我不知道我做得太过分了,没问题。现在你知道了。只需使用标签即可。