mollmanni >> Du læser vist ikke mit svar ! (
http://exp.dk/spm/274660) Som du skriver dit spørgsmål tolker jeg det sådan at den String du får overført kun indeholder den første char !
Hvis du rent faktisk KAN overføre structurer, så skal du lave en opbygning af dine structs, som gør at du kan skelne dem:
const int aMSGid = 1;
const int bMSGid = 2;
const int cMSGid = 3;
// osv.
class CBase
{
public:
int id;
CBase(int id);
};
class CaMSG : CBase
{
public:
char data[100];
CaMSG(char *s) : CBase(aMSGid) { memset(data, '\x0', sizeof(data));
memcpy(data, s, sizeof(data));
};
CaMSG(void) : CBase(aMSGid) { CaMSG(""); };
};
class CbMSG : CBase
{
public:
int data;
CbMSG(int i) : CBase(bMSGid) { data = i; };
CbMSG(void) : CBase(bMSGid) { CbMSG(0); };
};
I din receive henter du så bare til et alm. char array, som er stort nok - og flytter til den korrekte struct vha. memcpy():
CaMSG aMSG;
cbMSG bMSG;
struct
{
int ID;
char data[1025];
} buffer;
:
recv(buffer, ...);
switch (buffer.ID)
case
{ aMSGid : memcpy(aMSG, buffer, sizeof(aMSG)); break;
bMSGid : memcpy(bMSG, buffer, sizeof(bMSG)); break;
default: // Ukendt meddelelse.
break;
};
: