0

我有以下数据结构或记录,我需要通过 NetworkStream 与另一台机器进行流式传输。

  TRemoteRecord = record
    command:TRemoteCommand;
    status:TRemoteStatus;
    signame:string;
    rvalue:double;
    ivalue:LongInt;
  end;

这是我向流发送或写入数据结构或记录的方式。

TheStream:NetworkStream;
 SignalClient:TcpClient;
 SignalServer:TcpServer;
 sb:TRemoteRecord;

 SignalClient.ConnectNew(LocalIPEdit.Text,Int32.Parse(ClientPort.Text));
 TheStream := new NetWorkStream(SignalClient.Connect.DataSocket);
 TheStream.Write(sb, 0 SizeOf(sb));

当我编译它时,它会引发一个异常,“这些参数没有重载写入。”

如何通过networkstream发送和接收数据结构或记录?

谢谢,

4

1 回答 1

1

您需要先将 Record 序列化为 byte[]。

这将使您开始:

http://msdn.microsoft.com/en-us/library/ms752244.aspx

以下是对给定类型进行序列化和反序列化的两种方法:http: //dooba.net/2009/07/02/c-sharp-and-serializing-byte-arrays/ [注意:特别注意处理字符串的方式(它具有可变大小)和您的自定义类型。]

于 2012-05-11T11:04:02.080 回答