Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在TCP套接字中发送变量/对象?_C#_Sockets_Tcp - Fatal编程技术网

C# 如何在TCP套接字中发送变量/对象?

C# 如何在TCP套接字中发送变量/对象?,c#,sockets,tcp,C#,Sockets,Tcp,如何使用TCP套接字在LAN中将变量/对象/数据从一个程序发送到另一个程序?特别是,我想发送像TreeNode和ListViewItem这样的变量。我该怎么做?发送方程序如何将变量转换为可以发送到LAN中另一个程序的形式?接收方程序如何将发送的变量恢复为原始形式 编辑:在不再可用的网站上找到以下代码,并请求删除该链接 // Convert an object to a byte array private byte[] ObjectToByteArray(Obje

如何使用TCP套接字在LAN中将变量/对象/数据从一个程序发送到另一个程序?特别是,我想发送像TreeNode和ListViewItem这样的变量。我该怎么做?发送方程序如何将变量转换为可以发送到LAN中另一个程序的形式?接收方程序如何将发送的变量恢复为原始形式

编辑:在不再可用的网站上找到以下代码,并请求删除该链接

        // 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抱歉。我只是说得很具体。我不知道我做得太过分了,没问题。现在你知道了。只需使用标签即可。