Kafka CRC-BerechnungC#

Ein Treffpunkt für C#-Programmierer
Guest
 Kafka CRC-Berechnung

Post by Guest »

Ich versuche, eine Kafka-Produzentennachricht über natives TCP auf .net zu generieren. Ich habe die Nachricht bereits erstellt, aber mir fehlt etwas bei der CRC-Berechnung. Ich erstelle eine CRC-Berechnung mit:

Code: Select all

 public void InitCRC32C()
{
uint n, crc, k;

// Initialize the CRC32C table
for (n = 0; n < 256; n++)
{
crc = n;
for (int i = 0; i < 8; i++)
{
crc = (crc & 1) != 0 ? (crc >> 1) ^ POLY : crc >> 1;
}
crc32cTable[0, n] = crc;
}

for (n = 0; n < 256; n++)
{
crc = crc32cTable[0, n];
for (k = 1; k < 8; k++)
{
crc = crc32cTable[0, crc & 0xff] ^ (crc >> 8);
crc32cTable[k, n] = crc;
}
}
}

// Software CRC32C calculation
public uint CRC32Ccalculate(uint crc, byte[] buffer, int length)
{
uint crcVal = crc ^ 0xffffffff;
int index = 0;

// Process any leading bytes to bring the data pointer to an eight-byte boundary
while (length > 0 && (index & 7) != 0)
{
crcVal = crc32cTable[0, (crcVal ^ buffer[index]) & 0xff] ^ (crcVal >> 8);
index++;
length--;
}

// Process 8-byte aligned blocks
while (length >= 8)
{
ulong ncopy = BitConverter.ToUInt64(buffer, index);
crcVal ^= (uint)ncopy; // Assume the buffer is little-endian
crcVal = crc32cTable[7, crcVal & 0xff] ^
crc32cTable[6, (crcVal >> 8) & 0xff] ^
crc32cTable[5, (crcVal >> 16) & 0xff] ^
crc32cTable[4, (crcVal >> 24) & 0xff] ^
crc32cTable[3, (crcVal >> 32) & 0xff] ^
crc32cTable[2, (crcVal >> 40) & 0xff] ^
crc32cTable[1, (crcVal >> 48) & 0xff] ^
crc32cTable[0, crcVal >> 56];
index += 8;
length -= 8;
}

// Process remaining bytes
while (length > 0)
{
crcVal = crc32cTable[0, (crcVal ^ buffer[index]) & 0xff] ^ (crcVal >> 8);
index++;
length--;
}

return crcVal ^ 0xffffffff;
}
Aber ich erhalte eine Fehlermeldung bei der Kafka-Antwort. Irgendeine Hilfe dazu?
Mein Ziel ist die Implementierung des Kafka-Produzenten über das Mikrocontroller-Protokoll, aber ich würde es gerne vorher auf .net testen
Image

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post