私は以下のデータ構造またはレコードを持っています。NetworkStreamを介して別のマシンとやりとりする必要があります。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));
私がコンパイルすると、「これらのパラメータで過負荷書込みはありません」という例外が発生します。
データストリームをネットワークストリーム経由で送受信するにはどうすればよいですか?
ありがとう、
sbはバイト配列(bytes [])ではないため、例外が発生します。すなわち、NetworkStream.Write(bytes []バッファ、intオフセット、intサイズ)。 まずレコードをバイト配列にシリアル化する必要があると思います。 レコードにはさまざまな型と文字列型が含まれています(可変長の文字列のサイズに注意する必要があります)。 – Forer