Problem bei der Portierung aus C(++) - Datentypen-hickhack



  • Hallo ich habe versucht ein programm(empfängt daten via UDP) aus C++ nach java zu portieren, dabei bin ich auf folgendes problem gestoßen:
    der udp-socket empfängt bytes,
    der absender sendet konvertierte WORDs(2byte - unsigned int)
    bei er rückkonvertierung unter java (in char[2 byte - unsigned])
    bekomme ich den fehler das es nicht möglich sei.
    gibt es unter jave soetwas wie "binäre verkettung"?
    quasi: byte + byte = char
    unter C++ ist die konvertierung kein thema da die receive-funktion einen void-pointer anfordert

    zu ansicht, ein teil des C++ quellcodes:
    [cpp]
    WORD* pBuffer =new WORD[256];

    recieved=g_MySocket.Receive(pBuffer,256);

    switch (pBuffer[2])
    {
    case 0x0008: //WORD - 2byte die ich abfragen muss
    ///...
    [/cpp]

    Hoffe ihr könnt mir weiterhelfen - verzweifle langsam aber sicher

    Danke 🙂



  • byte b1;
    byte b2;
    char c;
    
    c = b1;
    c << 8;
    c += b2;
    

    Ich weiss aber nicht, ob das bei char Ärger gibt, weil es AFAIK unsigned ist. Einfach mal ausprobieren. 🙂


Anmelden zum Antworten