Skip to content
Snippets Groups Projects
Commit e25d5071 authored by Gianluca's avatar Gianluca
Browse files

finito

parent 4acfad7d
No related branches found
No related tags found
No related merge requests found
No preview for this file type
......@@ -97,9 +97,11 @@ int main(int argc, char *argv[]) {
printf("Inserire il valore da voler inviare al server con il formato num "
"num operator: ");
scanf("%d %d %c", &num1, &num2, &operator);
if (valueToSend[0] == '\0') {
fprintf(stderr, "Impossibile inviare una riga vuota!");
if (num2 == 0 && operator== '/') {
fprintf(stderr, "Impossibile dividere per zero!");
} else {
snprintf(valueToSend, sizeof(valueToSend), "%d %d %c", num1,
num2, operator);
write(simpleSocket, valueToSend, strlen(valueToSend));
read(simpleSocket, valueToReceive, sizeof(valueToReceive));
printf("\n\nEcho: %s\n", valueToReceive);
......
No preview for this file type
......@@ -101,9 +101,35 @@ int main(int argc, char *argv[]) {
memset(valueToRead, '\0', sizeof(valueToRead));
memset(valueToSend, '\0', sizeof(valueToSend));
int num1;
int num2;
char operator;
float result;
// Leggo il valore ricevuto dal client e gli restituisco la lunghezza
read(simpleChildSocket, valueToRead, sizeof(valueToRead));
snprintf(valueToSend, sizeof(valueToSend), "%zu", strlen(valueToRead));
sscanf(valueToRead, "%d %d %c", &num1, &num2, &operator);
printf("%d %d %c\n", num1, num2, operator);
switch (operator) {
case '+':
result = num1 + num2;
break;
case '-':
result = num1 - num2;
break;
case '/':
result = (float)num1 / (float)num2;
break;
case '*':
result = num1 * num2;
break;
default:
fprintf(stderr, "Errore, operatore non valido");
exit(1);
}
snprintf(valueToSend, sizeof(valueToSend), "%f", result);
write(simpleChildSocket, valueToSend, sizeof(valueToSend));
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment