我有以下数据结构或记录,我需要通过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));
当我编译它时,它引发了一个异常,“这些参数没有重载写入。”
如何通过网络流发送和接收数据结构或记录?
谢谢,
答案 0 :(得分:1)
您需要先将记录序列化为字节[]。
这将帮助您入门:
http://msdn.microsoft.com/en-us/library/ms752244.aspx
以下是两种序列化和反序列化给定类型的方法: http://dooba.net/2009/07/02/c-sharp-and-serializing-byte-arrays/ [注意:要特别注意你如何处理字符串(它有可变的大小)和你的自定义类型。]