I have my udp socket connection working correctly, but im facing a problem that when i receive more bytes that my buffer can store i dont have the full info. I have tried to make a while loop but i stay on teh rcvfrom after receiving the entire message.
The codes:
string server_response;
socklen_t addrlen = sizeof(addr); // na folha tava int addrlen
char temp_server_response[BUFFER_SIZE];
n = recvfrom(fd, temp_server_response, BUFFER_SIZE, 0, (struct sockaddr *) &addr, &addrlen);
if (n == -1) {
exit(1); // Dizer ao user q a ligacao udp errou
} else if (n == 0) {
exit(1); // pensar neste caso
} else {
server_response += string(temp_server_response, n);
}
string server_response;
socklen_t addrlen = sizeof(addr); // na folha tava int addrlen
do {
char temp_server_response[BUFFER_SIZE];
n = recvfrom(fd, temp_server_response, BUFFER_SIZE, 0, (struct sockaddr *) &addr, &addrlen);
if (n == -1) {
exit(1); // Dizer ao user q a ligacao udp errou
} else if (n == 0) {
exit(1); // pensar neste caso
} else {
server_response += string(temp_server_response, n);
}
} while (n == BUFFER_SIZE);