我正在尝试使用需要我将 ID 作为字符串发送的 tcp it 服务。我从示例代码中得到了以下方法。我的问题是当我输入带有 4 个字符数字的字符串时,例如“4000”、“2000”、“3000”,该方法有效,但是当我输入少于 4 个字符的字符串时,“1”、“20”或“300”它返回
System.ArgumentException:目标数组不够长。检查 destIndex 和长度,以及数组的下限。
public byte[] prepNetworkStreamBuffer(string reqiiredID) {
byte[] id = UTF8Encoding.UTF8.GetBytes(reqiiredID);
int l = id.Length;
byte[] idb = BitConverter.GetBytes(System.Net.IPAddress.HostToNetworkOrder(l));
byte[] buff = new byte[1 + 1 + id.Length + l];
buff[0] = 0;
buff[1] = (byte)VerificationServiceCommands.addIDtoAFIS;
idb.CopyTo(buff, 1 + 1);
id.CopyTo(buff, 1 + 1 + idb.Length);
return buff;
}