![]() |
Ciao e benvenuto da parte degli Stati Uniti al UNIX e Linux Forum! Grazie per la visita ed unirsi alla nostra Comunità Globale.
|
|
google unix.com
|
|||||||
| Forum | Registrati | Regole Forum | Collegamenti | Album | FAQ | Members List | Calendario | Ricerca | Today's Posts | Mark Forums Read |
| UNIX e avanzata per utenti esperti Expert-to-Expert. Ulteriori avanzata UNIX, comandi UNIX, Linux, Sistemi Operativi, System Administration, Programmazione, Shell, Shell Script, Solaris, Linux, HP-UX, AIX, OS X, BSD. |
Più di UNIX e Linux Forum Argomenti potreste trovare utili
|
||||
| Filo | Thread Starter | Forum | Risposte | Ultimo Post |
| Problema HP-Unix, mentre la scrittura in presa | AshokG | HP-UX | 0 | 02-25-2005 02:19 AM |
| Socket socket di programmazione | soshell | Di programmazione ad alto livello | 2 | 06-29-2004 07:49 AM |
| Come faccio a programma presa in UNIX? | sanjohn | Di programmazione ad alto livello | 7 | 06-20-2002 11:26 PM |
| Come utilizzare la presa di corrente | niuzefeng | Di programmazione ad alto livello | 1 | 06-30-2001 01:15 PM |
| presa | amin | Reti IP | 1 | 02-10-2001 04:45 PM |
![]() |
|
|
LinkBack | Thread Tools | Cerca in questo Thread | Rate Thread | Modalità di visualizzazione |
|
|
|
||||
|
Unix: presa & Co
Ciao,
Ho bisogno di aiuto per sostituire il ................. client.c di tale richiesta il server attuate da server.c ------------------ Listing 1 - server.c / * Inclusione delle diverse Biblioteche necessarie * / # include <stdio.h> # include <stdlib.h> # include <unistd.h> # include <string.h> # include <sys/types.h> # include <sys/socket.h> # include <netinet.in.h> # include <arpa.inet.h> int main (int argc, char * argv []) ( int res; / * Operandes * / int a, b, buf; / * Socket mise en place lato server * / int serv_sock; / * Socket mise en place lato client * / int cli_sock; / * Adresse de la presa distante * / struct sockaddr_in localaddr; / * Longueur de l'adresse * / socklen_t localaddr_len; / * Longueur de l'adresse * / socklen_t distaddr_len; localaddr_len \u003d sizeof (localaddr); / * Mise en place de la socket * / serv_sock \u003d socket (AF_INET.SOCK_STREAM, 0); if (serv_sock \u003d socket (AF_INET.SOCK_STREAM, 0); if (serv_sock \u003d\u003d -1) ( perror (''Impossible de creer''la presa di corrente) uscita (-1); ) / * Mise en place de la struttura décrivant l'adresse * E il porto che saranno associés à la socket * / bzero ((char *) & localaddr, localaddr_len); / * Protocollo Internet * / localaddr.sin_family \u003d AF.INET; / * Il écoute sur l'adresse de boucle locale * / localaddr.sin_addr.s_addr \u003d inet_addr (127.0.0.1''''); / * Il écoute sur le port 1234 * / localaddr.sin_port \u003d htons (1234); / * Il Attache presa la porta 1234 au sur * L'indirizzo locale 127.0.0.1 * / if (bind (serv_sock, (struct sockaddr *) & localaddr, localaddr_len) \u003d\u003d -1) ( perror (''impossibile la presa d'attacher''); uscita (-1); ) / * Mise en place de l'écoute sur la presa di corrente * / if (listen (serv_sock, 1) \u003d\u003d -1) ( perror (''Impossible d'écouter sur la presa''); uscita (-1); ) / * Il accepte le connessioni entrantes * / \u003d cli_sock accettare (serv_sock, (struct sockaddr *) & distaddr, & distaddr_len); if (cli_sock \u003d\u003d -1) ( perror (''Erreur de connexion du client''); uscita (-1); ) / * Riceve su La Première operande * / res \u003d recv (cli_sock, &buf; sizeof (int), 0); if (res! \u003d sizeof (int)) ( perror (''Données recues incorrectes''); close (serv_sock); uscita (-1); ) a \u003d ntohl (buf); printf (''reçu:% d / n'', a); / * Il riceve La deuxième operande * / res \u003d recv (cli_sock, & buf, sizeof (a), 0); if (res! \u003d sizeof (int)) ( perror (''Données recues incorrectes''); close (serv_sock); uscita (-1); ) b \u003d ntohl (buf); printf (''reçu:% d \ n'', b); buf htonl \u003d (a + b); printf (''Envoi:% d \ n'', a + b); / * Il envoie le resultat * / res \u003d send (cli_sock, & buf, sizeof (int), 0); if (res! \u003d sizeof (int)) ( perror (''Erreur de''la trasmissione di dati); close (serv_sock); uscita (-1) ) close (serv_sock); close (cli_sock); return (); ) ----------------- Listing 2 - client.c / / Inclusione delle diverse Biblioteche necessarie # include <stdio.h> # include <stdlib.h> # include <unistd.h> # include <string.h> # include <sys/types.h> # include <sys/socket.h> # include <netinet/in.h> # include <arpa/inet.h> int main (int argc, char * argv []) ( int res; / * Operandes * / int a, b, buf; / * Socket mise en place cote server * / int serv_sock; / * Socket mise en place cote client * / int cli_sock; / * Adresse de la presa distante * / struct sockaddr_in distaddr; / * Longueur de l'adresse * / socklen_t distaddr_len; distaddr_len \u003d sizeof (distaddr); a \u003d htonl (123); b \u003d btonl (124); / * Creazione de la socket * / cli.sock \u003d ............................. if (cli_sock \u003d\u003d -1) ( perror (''Impossible de creer''la presa di corrente); uscita (-1); ) / * Mise en place de la struttura decrivant * L'indirizzo e il porto che saranno ASSOCIES * Uno * la presa di corrente / bzero ((char *) & distaddr, distaddr_len); / * Protocollo Internet * / distaddr.sin_family \u003d ....................... / * Il sé connecte sur l'adresse de boucle locale * / distaddr.sin_addr.s_addr \u003d inet_addr (''127.0.0.1 "); / * Il sé connecte sur le porta 1234 * / distaddr.sin.port \u003d ............................. / * Connexion au serveur * / serv_sock \u003d .................................... if (serv_sock \u003d\u003d -1) ( perror (''Impossible de se connecter''); ) / * Il envoi la prima operande * / res \u003d ..................................... if (res! \u003d sizeof (int)) ( perror (''Impossibile inviare i dati d'''); close (cli_sock); uscita (-1); ) / * Il envoie la seconde operande * / res \u003d send (cli_sock, & b, sizeof (int), 0); if (res! \u003d sizeof (int)) ( perror (''Impossibile inviare i dati d'''); close (cli_sock); uscita (-1); ) / * Il recupere il risultato * / res \u003d .................................... if (res! \u003d sizeof (int)) ( perror (''Impossible de lire les données''); close (cli_sock); uscita (-1); ) printf (''Valutazione:% d \ n'', ntohl (buf)); ............................. close (serv_sock); return 0; ) |
![]() |
| Segnalibri |
| Thread Tools | Cerca in questo Thread |
| Modalità di visualizzazione | Vota questo thread |
|
|