This repository was archived by the owner on Nov 4, 2023. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 0
chat : client : sendMessage.c
sᴀʟᴠᴀᴛᴏʀᴇ ʙ edited this page Jul 23, 2017
·
2 revisions
void sendMessage() {
/*
* Connessione a server_pipe e client_pipe gia' effettuata e reperibile in main_ client.h
* 1) acquisire il messaggio da parte dell'utente
* 2) verificare che sia non troppo lungo e che ci siano caratteri
* 3) se il messaggio è valido, richiedere uno o più destinatari
* 4) impacchettare il messaggio come da protocollo
* -> "MSG <pid_destinatari> $<pid_mittente> <messaggio>"
* 5) invia il messaggio su server_pipe e libera la memoria occupata
*/
//
char* message = malloc(sizeof(char) * MAX_LENGTH_MSG);
if (message == NULL)
exit(EXIT_FAILURE);
char** receivers = NULL;
int result = getMessage(message);
if (result == OK) {
result = getReceivers(&receivers);
if (result != 0) {
//result contiene il numero di destinatari
buildMessage(&message, receivers, result);
//il messaggio è pronto per essere inviato al server
write(fdServerPipe, message, strlen(message) + 1);
//+1 perche’ strlen non conta '\0'
} else if (result == 0) {
printf("Messaggio non inviato.\n");
}
// free di tutta la memoria allocata
if (receivers != NULL) {
int i = 0;
for (; i < result; i++) {
free(*(receivers + i));
}
free(receivers);
}
}
if (message != NULL)
free(message);
}Made with ❤️ by Owanesh and MatteoMauro | MIT ©