UDP Daten wandeln



  • Hallo Leute,

    kann mich mal einer vom Schlauch holen?
    Wie kann ich denn aus meinem char-Array lesbare Zeichen machen?

    hier mein Code zum Lesen:

    void __fastcall TForm1::NMUDP1DataReceived(TComponent *Sender,
          int NumberBytes, AnsiString FromIP, int Port)
    {
    Edit1->Text = FromIP;
    Edit2->Text = NumberBytes;
    
      if (NumberBytes<100)
        {
        char Buff[100];
    
        int j;
        NMUDP1->ReadBuffer(Buff, 100, j);
    
        for (int i=0;i<j;i++)
            {
              Memo1->Lines->Add(String(Buff[i]));
            }
    
           Memo1->Lines->Add("Von IP:" + FromIP + ":" + "Port:" + Port + ":" +"Bytes:" + NumberBytes + ":" + Buff);
        }
      else
        Memo1->Lines->Add("Puffer zu klein");
    
    }
    

    Danke für die Hilfe

    Gruß myerscola



  • Hallo

    Vermutlich fehlt nur die abschließende 0.

    char Buff[101]; // Ein zusätzliches Zeichen, um 100 Zeichen + 0 speichern zu können
    
        int j;
        NMUDP1->ReadBuffer(Buff, 100, j);
        Buff[NumberBytes] = 0;
    

    Wenn du statt dem statischen Array ein dynamisches Array nimmst, kannst du auch mehr als 100 Zeichen verarbeiten.

    bis bald
    akari


Anmelden zum Antworten