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.