n° 219
Novembre 2017
Dicembre 13, 2017, 05:01:22 *
Benvenuto! Accedi o registrati.
Hai dimenticato l'e-mail di attivazione?

Accesso con nome utente, password e durata della sessione
Notizia:
 
   Indice   Linux Windows Techassistance Gameassistance videogame hardware Aiuto Ricerca Agenda Downloads Accedi Registrati  


* Messaggi recenti
Messaggi recenti
Pagine: [1]   Vai giù
  Stampa  
Autore Discussione: Connessione Client/Server  (Letto 2335 volte)
0 utenti e 1 Utente non registrato stanno visualizzando questa discussione.
haring
Newbie
*

Karma: +0/-0
Scollegato Scollegato

Messaggi: 43


Mostra profilo E-mail
« inserita:: Agosto 08, 2013, 05:54:27 »

Devo creare una connessione in modo che il server torni al client il prodotto di due interi.
Questo è il codice del server:

Codice:
#include <stdio.h>
#include <signal.h>
#include <i386-linux-gnu/sys/types.h>
#include <fcntl.h>
#include <i386-linux-gnu/sys/socket.h>
#include <i386-linux-gnu/sys/un.h>

#define DEFAULT_PROTOCOL 0

void writeRecipe(int fd);

int main()
{
int serverFd, clientFd, serverLen, clientLen;
struct sockaddr_un serverAddress;
struct sockaddr_un clientAddress;
struct sockaddr *serverSockAddrPtr;
struct sockaddr *clientSockAddrPtr;

signal(SIGCHLD, SIG_IGN);

serverSockAddrPtr=(struct sockaddr*) &serverAddress;
serverLen=sizeof(serverAddress);
clientSockAddrPtr=(struct sockaddr*) &clientAddress;
clientLen=sizeof(clientAddress);

serverFd=socket(PF_LOCAL, SOCK_STREAM, DEFAULT_PROTOCOL);
serverAddress.sun_family=PF_LOCAL;
strcpy(serverAddress.sun_path, "recipe");

unlink("recipe");
bind(serverFd, serverSockAddrPtr, serverLen);
listen(serverFd, 5);

while(1){
clientFd=accept(serverFd, clientSockAddrPtr, &clientLen);
if(fork()==0){
writeRecipe (clientFd);
close(clientFd);
exit(0);
}
else
close(clientFd);
}

return 0;
}

void writeRecipe(int fd){
int primo=2, secondo=3, prodotto;
        prodotto=primo*secondo;

write(fd, prodotto, sizeof(prodotto)+1);
}
Il problema è che eseguendo il codice il programma sembra andare in loop all'istruzione "clientFd=accept(serverFd, clientSockAddrPtr, &clientLen);"
Non riesco a capire però dove sia l'errore.
Registrato
Pagine: [1]   Vai su
  Stampa  
 
Vai a:  

Copyright © 2017 Edizioni Master SpA. p.iva : 02105820787

Tutti i diritti di proprietà letteraria e artistica riservati. - Privacy



powered by Simple Machines