У меня есть следующая структура данных или запись, которые мне нужно передать на другую машину и через нее через 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 не является массивом байтов (байты []), поэтому исключение возникает. т. Е. NetworkStream.Write (байты [] buffer, int offset, int size). Я думаю, вам нужно сначала сериализовать свою запись в массив байтов. Это может быть несложно, так как ваша запись содержит различные типы и тип строки (получение размера строки переменной длины требует особого внимания). – Forer