c# - 如何序列化复杂的结构以通过 tcp/ip 发送?

标签 c# sockets serialization memorystream

我有以下结构

[Serializable()]
public struct Transfer_packet 
  {
     public int  _packet_type; // 0 is action 1 is data
     public int _packet_len; // length of data
     public byte[] _data;//Content of data it's Length depends on objects types 

        public byte[] serialize()
        {
            byte[] arr;
            BinaryFormatter bf = new BinaryFormatter();
            MemoryStream ms = new MemoryStream();
            bf.Serialize(ms, this);
            arr = ms.ToArray();
           return arr;
        }
    }

在我的代码中的某些地方我这样做

            Transfer_packet sndpkt;  
            string cmd = "Some Commands in text or binary bytes";
            byte[] data = ASCIIEncoding.ASCII.GetBytes(cmd);
            sndpkt._packet_type = 0; // Action Packet 
            sndpkt._packet_len = data.Length;  // Length of command
            sndpkt._data = data;
            byte[] SendData = sndpkt.serialize();
            LanAdapter.Send(SendData, System.Net.Sockets.SocketFlags.None); // LanAdapter ->TcpSocket

结构内的serialize函数无法正常工作我想要一个序列byte结构数组,用于通过网络发送它并在编写的其他应用程序中以相同的内存格式接收它在 C++ 中。

最佳答案

您可以实现ISerialized接口(interface)
MSDN sample可以服务

关于c# - 如何序列化复杂的结构以通过 tcp/ip 发送?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15319696/

相关文章:

c# - 尝试连接到 unity3d 中启用 TLS 的代理时 MQTT 超时

c# - 通过 HttpClient 的 HTTP Post 的 UrlEncode 非字符串属性

node.js - socket.io无法连接react-native和nodejs

c# - XmlSerializer.Serialize异常: "The type [type] was not expected."

c# - 在运行时使用 Serialize.Linq 编译表达式

javascript - MVC 不需要 ViewModel 上的双属性导致问题

c# - 如何解密 linq 查询中的文本

java - 如何实现 xml 可保存/可加载类?

sockets - ConnectEx 与 SetFileCompletionNotificationModes 能否同步返回?

javascript - Uncaught Error : connect ETIMEDOUT (net. 套接字)