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 (bytes [] buffer, int offset, int size). 먼저 레코드를 바이트 배열로 serialize해야한다고 생각합니다. 레코드가 다양한 유형과 문자열 유형 (가변 길이의 문자열 크기를 얻는 데 특별한주의가 필요함)이 있기 때문에 이것은 간단하지 않을 수 있습니다. – Forer