Como enviar mensagens com tamanho maior que o buffer na programação de soquetes?

Estou desenvolvendo um aplicativo usando o Winsock em C ++. Eu tenho uma matriz de caracteres de 200 bytes de comprimento para enviar seqüências de caracteres pelo soquete.

Meu problema é ao enviar mensagens maiores que a matriz char, então decidi enviá-las em vários blocos, mas não tenho idéia de como fazê-lo.

Para enviar e receber dados, eu estou usando osend() erecv() funções:

recv(client, buffer, 200, NULL);
send(client, buffer, 200, NULL);

Atualizar

Eu tenho uma estrutura:

struct Pack
{
    unsigned int senderId;
    char str[200];
}

antes de enviar eu converto ostruct para matriz de caracteres.

Pack pk;
strcpy_s(pk.str, 200, "Some text to send.\0");
pk.senderId = 1 // user id
char *buffer = (char*)pk;

Se o tamanho da string for maior que 200, o strcpy_s () trava.

questionAnswers(4)

yourAnswerToTheQuestion