Problem mit Lesen aus dem Socket
-
Weil ich die Größe vor den Empfangen der eigendlichen Nachricht abfragen muss, habe ich sie an den Anfang eines char* vorangestellt. Somit kann ich erst die Größe der zulesenden Bytes lesen und den buffer dann auslesen. Leider funktioniert das nicht, kann mir einer helfen?
hier der code:int bytecounter = 0;
char* recbyte = NULL;//Information der Größe auslesen
if (recv (daMember[counter].Socket, (char*) &bytecounter, sizeof (int), 0) != sizeof (int))
{
//Socketerror zurückliefern
return SOCKET_ERROR;}
else
{
recbyte = new char [bytecounter];
int n = recv (daMember[counter].Socket, recbyte, bytecounter, 0);
char* probe = recbyte;}
//UI- Struktur füllen
memset (&userinformation, 0, sizeof (UI));//erstes Byte (BOOLEAN) des Empfangsbuffers in registry kopieren
memcpy (&userinformation[counter].registry, recbyte, sizeof (bool));//für den Fall eines Gastzuganges
if (userinformation[counter].registry == false)
{userinformation[counter].nickname = new char [100];
//Nicknamen rauskopieren
memcpy (&userinformation[counter].nickname, recbyte + sizeof (bool), bytecounter - sizeof (bool));
//userinformation[counter].nickname = "hallo";
cout << &userinformation[counter].nickname << endl;
cout << userinformation[counter].nickname << endl;
daMember[counter].myuser = new char [bytecounter];
memcpy (daMember[counter].myuser, userinformation[counter].nickname, bytecounter - sizeof (bool));}
//ansonsten weitere Daten rauskopieren
else
{}
kann mir einer helfen ? wäre sehr nett.
-