Segui il video qui sotto per vedere come installare il nostro sito come web app sulla tua schermata principale.
Nota: Questa funzionalità potrebbe non essere disponibile in alcuni browser.
Pubblicità
ccs ha detto:tramite la shell entro a scuola e programmo kn il mio account!
ccs ha detto:Per ora nn capisco quei due errore ke mi da ke nn riesco a risolvere!!
Ah, ho capito, per l'errore della riga 46:
tu richiedi il contenuto di un cast di un puntatore
puoi risolvere così
Ti crei una variabile di tipo: struct in_addr supportoIndirizzo;
fai una memcpy(&supportoIndirizzo,host->h_addr,sizeof(struct in_addr));
poi fai
inet_addr(inet_ntoa(supportoIndirizzo));
ccs ha detto:Esattamente come avevi detto mancava una include! :)
#include <netdb.h>
ora sono alle prese con
/* Punto 5.*/
len = strlen(argv[3]);
write(sd, &len, sizeof(int));
N_value = value;
printf("value = %s\n", N_value);
N = strlen(msg); //mi da errore qui!!
dove devo scrivere un intero C di 4 bytes (header) indicando qti caratteri N spedirà in futuro. N=strlen(messaggio), usando la typedef union.
N_value = value;
N = strlen(msg); //mi da errore qui!!
#include <unistd.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <netdb.h>
#include <errno.h>
#define SOCKET_ERROR ((int)-1)
char A[10];
char B[100];
char user[50] = "Alessandra,Raffoni,0000240469";
char buf[100];
char msg[120];
int port, len, nread, nwrite, n, sd, i, value;
char h, N_value, N;
char* servizio;
typedef union {
int value;
char N_value[4];
} byte_msg;
int main(int argc, char **argv) {
struct hostent* host;
struct sockaddr_in cliaddr, servaddr;
byte_msg N;
char ris[3];
if (argc != 4) {
printf("Error: %s serverAddress serverPort message\n", argv[0]);
exit(1);
}
else {
memset((char *)&servaddr, 0, sizeof(struct sockaddr_in));
servaddr.sin_family = AF_INET;
host = (struct hostent *)gethostbyname(argv[1]);
if (host == NULL) {
printf("%s not found in /etc/host\n", argv[1]);
exit(1);
}
servaddr.sin_family = AF_INET;
servaddr.sin_port = htons((u_short)atoi(argv[2]));
servaddr.sin_addr.s_addr = inet_addr(inet_ntoa(*((struct in_addr*)host->h_addr)));
sd = socket(AF_INET, SOCK_STREAM, 0);
/* Punto 2. */
if (sd < 0) {
perror("apertura socket");
exit(1);
}
printf("Client: creata la socket sd=%d\n", sd);
if (connect(sd, (struct sockaddr *)&servaddr, sizeof(struct sockaddr)) < 0) {
perror("connect");
exit(-1);
}
printf("Client: connect ok\n");
/* Punto 3.*/
len = 10;
nread = 0;
while ((len > nread) && ((n = read(sd, &(buf[nread]), len - nread)) > 0)) {
nread += n;
printf("readeffettuata, risultato n=%d len=%d nread=%d len-nread=%d\n", n, len, nread, len-nread);
fflush(stdout);}
/* Punto 4.*/
strcat(A, user);
len = strlen(A);
strcpy(B, A);
len = strlen(B);
for (i = len; i < 100; i++) {
B = ' ';}
len = strlen(argv[3]) + 1;
nwrite = 0;
while ((n = write(sd, &(msg[nwrite]), len - nwrite)) > 0)
nwrite += n;
strcpy(msg,argv[3]);
/* Punto 5.*/
byte_msg header;
len = strlen(argv[3]);write(sd, &len, sizeof(int));
N_value = value;
printf("value = %s\n", N_value);
N = strlen(msg);
/* Punto 6. */
len = strlen(msg) + 1;
nwrite = 0;
while ((n = write(sd, &(msg[nwrite]), len - nwrite)) > 0)
nwrite += n;
/* Punto 7. */
while ((len>nread) && ((n = read(sd, &(buf[nread]), len - nread)) > 0)) {
nread += n;printf("readeffettuata, risultato n=%d len=%d nread=%d len-nread=%d\n", n, len, nread, len - nread);
fflush(stdout);}
ris[2] = '\0';
/* Punto 8. */
printf("Risultato dal server: ");
printf("%s\n",ris);
/* Punto 9. */
close(sd);
exit(0);
return(0);
}
} //main
ccs ha detto:Io N l'ho dichiarato char ma mi da ancora errore! :cav: :muro:
Oddio!! Come mai?
Guarda ora il codice: