Programmazione SOCKET C

di il
4 risposte

Programmazione SOCKET C

Salve devo realizzare un semplice programma che fa una stima della media ponderata usando la connessione client-server... il client manda i dati necessari al server il server fa la media e la restituisci al client che la stampa a video...

per inviare i voti da client a server ho fatto così
LATO CLIENT
for(i=0;i<n;i++){
			printf("\nInserisci voto esame : ");
			scanf("%d",&voto);
			int c3=send(clientSocket,&voto,sizeof(int),0);
			if(c3==-1)printf("Errore nella trasmissione voto\n");
			printf("\nInserisci cfu esame appena inserito : ");
			scanf("%d",&cfu);
			int c4=send(clientSocket,&cfu,sizeof(int),0);
			if(c4==-1)printf("Errore nella trasmissione cfu\n");
			
		}
		char smediaponderata[1024]={0};
		int c2Rec=recv(clientSocket,smediaponderata,sizeof(smediaponderata),0);
		mediaponderata=atoi(smediaponderata);
		printf("MEDIAPONDERATA : %.2f", mediaponderata);
		
LATO SERVER
            for(i=0;i<n;i++){
            	char bvoto[10]={0};
            	char bpeso[10]={0};
            	
            	int c3=recv(socket,bvoto,sizeof(bvoto),0);
            	voto=atoi(bvoto);
            	if(c3==-1) printf("Errore ricezione voto");
            	printf("%d",voto);// NON MI STAMPA NIENTE ignora proprio la printf
            	int c4=recv(socket,bpeso,sizeof(bpeso),0);
            	if(c4==-1) printf("ERRORE Ricezione peso");
            	peso=atoi(bpeso);
            	printf("%d",peso);// IDEM
            	votoperpeso= voto * peso;
            	media= media + votoperpeso;
            	sommapeso = peso + sommapeso;
            }
            char smediaponderata[1024];
            mediaponderata = (float)( (media *110/30)/sommapeso);
            sprintf(smediaponderata,"%.2f",mediaponderata);
            int c2trasm= send(socket,smediaponderata,sizeof(smediaponderata),0);

il server è come se non ricevesse nulla... mi dice Floating point exception

dove sto sbagliando?

4 Risposte

  • Re: Programmazione SOCKET C

    Trasmetti in binario e ricevi caratteri ASCII... Ovviamente non va bene...
  • Re: Programmazione SOCKET C

    Usare le socket non e' proprio banalissimo.

    In generale PRIMA si implementa il meccanismo di comunicazione, POI la logia associata al programma.

    L'equivalente dell'Hello World nell'uso delle socket e' il seguente:

    1.1) il client si connette al server,
    1.2) invia un messaggio ("Hello World"),
    1.3) attende la risposta,
    1.4) stampa la risposta
    1.5) si disconnette

    2.0) il server parte
    2.1) il server attende la connessione da parte di un client.
    2.2) quando un client si connette, attende la ricezione di un messaggio
    2.3) quando riceve un messaggio, lo reinvia come risultato (fa l'echo)
    2.4) quando il client si disconnette, rilascia le risorse associate
  • Re: Programmazione SOCKET C

    Grazie mi sfuggiva proprio
  • Re: Programmazione SOCKET C

    migliorabile ha scritto:


    Usare le socket non e' proprio banalissimo.

    In generale PRIMA si implementa il meccanismo di comunicazione, POI la logia associata al programma.

    L'equivalente dell'Hello World nell'uso delle socket e' il seguente:

    1.1) il client si connette al server,
    1.2) invia un messaggio ("Hello World"),
    1.3) attende la risposta,
    1.4) stampa la risposta
    1.5) si disconnette

    2.1) il server attende la connessione da parte di un client.
    2.2) quando un client si connette, attende la ricezione di un messaggio
    2.3) quando riceve un messaggio, lo reinvia come risultato (fa l'echo)
    2.4) quando il client si disconnette, rilascia le risorse associate


    si si io li ho messo un pezzo di codice... cmq ho risolto grazie ad oregon
Devi accedere o registrarti per scrivere nel forum
4 risposte