1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
|
int SimpleTextFrame::buildDataToSend(char *buf)
{
//code est un entier, msgSize aussi, déjà initialisés
//msg est une string
memcpy(buf,&code,sizeof(int));
memcpy(buf+sizeof(int),&msgSize,sizeof(int));
strncpy(buf+2*sizeof(int),msg.c_str(),msgSize*sizeof(char)+1);
return (2*sizeof(int)+msgSize*sizeof(char)+1);
}
...
UDPpacket *pack = SDLNet_AllocPacket(SGNE_MAX_MSG_LENGTH);
if (pack != NULL)
{
int len = frame->buildDataToSend((char*)pack->data);
pack->channel = channel;
pack->len = len;
pack->address = address;
ok = (SDLNet_UDP_Send(sock, channel, pack) > 0);
SDLNet_FreePacket(pack);
}
... |
Partager