Datenemfpang



  • Hi!
    Hab mal wieder ein Problem *g*...
    Ich habe in folgendem Programmabschnitt ein Edit-Feld erzeugt...

    edit2=CreateWindow("edit", "", WS_CHILD | WS_VISIBLE, 10, 50,
                200, 50, hwnd, (HMENU) 3, NULL, NULL);
    

    Nun, wenn ich Dateien empfange, mache ich folgendes:

    status=recv(sock, buf, 50, NULL);
    buf[status]='\0';
    SendMessage(GetDlgItem(hwnd, 3), WM_SETTEXT, NULL, (long)buf);
    

    Damit sollen die empfangenen Daten in das Textfeld geschrieben werden. Nur nach 4 Zeichen setzt er nur noch nen Strich und macht gar nichts mehr. Bei nem anderen Programm hat das so geklappt... Kann mir jemand helfen?



  • Ich glaub man sollte nicht so niedrige IDs vergeben... nimm mal anstatt 3 3000 oder so :). Ansonsten könnte ich mir vorstellen, dass in buf gar nicht der ganze Text steht, einfach mal mit dem Debugger überprüfen :).

    cya 🙂



  • Im Debugger zeigt status immer die richtige länge an, nur buf bekommt nen falschen wert, ich versteh nich wieso...



  • Wie legst du buf an?

    cya 🙂



  • char buf[]="";

    aber wie gesagt, in dem server-programm klappts...und ich finde keine unterschiede...



  • Dann stimmt was an deinem Aufruf von recv nicht... was, kann ich nicht sagen, ich hab sowas noch nie gemacht ;).

    cya 🙂



  • Original erstellt von FlorianLabu:
    **char buf[]="";
    **

    Mach das mal lieber so:
    [cpp]
    char buf[51];
    status=recv(sock, buf, sizeof(buf), NULL);
    buf[status]='\0';
    SendMessage(GetDlgItem(hwnd, 3), WM_SETTEXT, NULL, (long)buf); [/cpp]

    [ Dieser Beitrag wurde am 05.02.2003 um 17:48 Uhr von hackbert editiert. ]



  • cool, es klappt, danke!

    aber ich versteh nciht, wieso es dann beim server-programm so wie ichs hatte, im client-programm nicht geht...



  • Ich auch nicht...

    cya 🙂


Log in to reply