The UNIX and Linux Forums  
Ciao e benvenuto da parte degli Stati Uniti al UNIX e Linux Forum! Grazie per la visita ed unirsi alla nostra Comunità Globale.

Go Back   UNIX e Linux Forum > Inizio Forum > UNIX e avanzata per utenti esperti
.
google unix.com



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

Closed Thread
English Japanese Spanish French German Portuguese Italian Dutch Swedish Russian Norwegian Hungarian Hebrew Danish Bulgarian Greek Powered by Powered by Google
 
LinkBack Thread Tools Cerca in questo Thread Rate Thread Modalità di visualizzazione
  #1 (permalink)  
Old 05-20-2008
bounkolh bounkolh is offline
Utente Registrato
  
 

Iscriviti Data: maggio 2008
Interventi: 1
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;
)
Closed Thread

Segnalibri

Thread Tools Cerca in questo Thread
Cerca in questo Thread:

Ricerca Avanzata
Modalità di visualizzazione Vota questo thread
Vota questo thread:

Distacco regolamento
Tu non può post nuovo thread
Tu non può inviare una risposta
Tu non può postare allegati
Tu non può modificare i tuoi post

BB codice è Su
Smilies sono Su
[IMG] codice Su
Codice HTML è Chiuso
Trackbacks sono Su
Pingbacks sono Su
Refbacks sono Su




Tutti gli orari sono GMT -4. La data di oggi è 03:16 AM.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Traduzioni Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
UNIX e Linux Forum Content Copyright © 1993-2009. Tutti i diritti Reserved.Ad di gestione da RedTyger

Contenuti pertinenti URL da vBSEO 3.2.0