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