-1

我有一个 C# 代码,它将字节从特定索引复制到字节数组,如下例所示:

string headerInfo = String.Format(source + "<>" + destination + "<>" + sessionId);
headerInfo = headerInfo.TrimEnd('\n', '\0', '\r');
byte[] headerInfoBytes = Encoding.UTF8.GetBytes(headerInfo);
byte[] headerInfoLength = BitConverter.GetBytes(headerInfo.Length);

//create an byte Array with proper size.
byte[] sendData = new byte[4 + 4 + headerInfoBytes.Length + dataContractBytes.Length];

headerInfoLength.CopyTo(sendData, 0);
dataContractLengthBytes.CopyTo(sendData, 4);
headerInfoBytes.CopyTo(sendData, 8);
dataContractBytes.CopyTo(sendData, 8 + headerInfoBytes.Length);
m_clientSocket.Send(sendData);

我的问题是,如何以客观 c 方式实现 CopyTo?

4

1 回答 1

0

查看本指南,了解如何处理可变数据。

如果您特别需要索引部分,可以使用replaceBytesInRange:withBytes:. 否则,只需附加数据:

NSString *headerInfo = [NSString stringWithFormat:@"%@<>%@<>%@", source, destination, sessionId];
NSData *headerData = [headerInfo dataUsingEncoding:NSUTF8StringEncoding];

NSMutableData *data = [NSMutableData dataWithCapacity:headerData.length + ...];
[data appendData:headerData];
于 2012-12-13T21:39:33.683 回答