The UNIX and Linux Forums  


Go Back   UNIX og Linux Forums > Top Forums > UNIX for Advanced & ekspertbrukere
.
google unix.com



UNIX for Advanced & ekspertbrukere Expert-til-ekspert. Lær avanserte UNIX UNIX kommandoer, Linux operativsystem, systemadministrasjon, programmering, Shell, Shell Scripts, Solaris, Linux, HP-UX, AIX, OS X, BSD.

Mer UNIX og Linux Forum Emner Du kan finne nyttig
Tråd Tråd startet Forum Svar Siste innlegg
Problem i HP-Unix mens du skriver inn socket AshokG HP-UX 0 02-25-2005 02:19
Socket Programmering socket soshell High Level Programmering 2 06-29-2004 08:49
Hvordan kan jeg programmet socket i UNIX? sanjohn High Level Programmering 7 06-21-2002 12:26
Hvordan bruke socket niuzefeng High Level Programmering 1 06-30-2001 02:15
socket Amin IP Networking 1 02-10-2001 04:45

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 Søk i denne tråden Rate Thread Visningsmoduser
  #1 (permalink)  
Old 05-20-2008
bounkolh bounkolh is offline
Registrert bruker
  
 

Bli Dato: mai 2008
Innlegg: 1
Unix: socket & Co

Hallo,
Jeg trenger hjelp til å erstatte ................. av client.c som ber om serveren implementert av server.c

------------------
Oppføring 1 - server.c

/ * Inkludering des différentes librairies nécessaires * /
# 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 côté serveur * /
int serv_sock;
/ * Socket mise en place côté klient * /
int cli_sock;
/ * Adresse de la Sokkel 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 plass de la socket * /
serv_sock \u003d socket (AF_INET.SOCK_STREAM, 0);
if (serv_sock \u003d socket (AF_INET.SOCK_STREAM, 0);
hvis serv_sock (\u003d\u003d -1) (
perror (''Impossible de Créer la socket'')
exit (-1);
)
/ * Mise en plass de la strukturen décrivant l'adresse
* Et le port qui seront Associés à la socket * /
bzero ((char *) & localaddr, localaddr_len);
/ * Protokoll internett * /
localaddr.sin_family \u003d AF.INET;
/ * På écoute sur l'adresse de Boucle locale * /
localaddr.sin_addr.s_addr \u003d inet_addr (''127.0.0.1'');
/ * På écoute sur le port 1234 * /
localaddr.sin_port \u003d htons (1234);

/ * På attache la Sokkel au port 1234 sur
* L'adresse locale 127.0.0.1 * /
if (bind (serv_sock,
(struct sockaddr *) & localaddr,
localaddr_len) \u003d\u003d -1) (
perror (''Impossible d'attacher la socket'');
exit (-1);
)
/ * Mise en plass de l'écoute sur la socket * /
if (lytte (serv_sock, 1) \u003d\u003d -1) (
perror (''Impossible d'Écouter sur la socket'');
exit (-1);
)
/ * På accepte les Connexions entrantes * /
cli_sock \u003d godta (serv_sock,
(struct sockaddr *) & distaddr,
& distaddr_len);
hvis cli_sock (\u003d\u003d -1) (
perror (''Erreur de connexion du klient'');
exit (-1);
)
/ * På recoit 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);
exit (-1);
)
A \u003d ntohl (BUF);
printf (''Recu:% d / n'', a);

/ * På recoit la Deuxième operande * /
res \u003d recv (cli_sock, & buf, sizeof (i), 0);
if (res! \u003d sizeof (int)) (
perror (''données recues incorrectes'');
close (serv_sock);
exit (-1);
)
b \u003d ntohl (BUF);
printf (''Recu:% d \ n'', b);

BUF \u003d htonl (a + b);
printf (''Envoi:% d \ n'', a + b);
/ * På envoie le resultat * /
res \u003d send (cli_sock, & buf, sizeof (int), 0);
if (res! \u003d sizeof (int)) (
perror (''Erreur de girkasse de données'');
close (serv_sock);
exit (-1)
)
close (serv_sock);
close (cli_sock);
return ();
)
-----------------
Oppføring 2 - client.c

/ / Inkludering des différentes librairies necessaires
# 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 serveur * /
int serv_sock;
/ * Socket mise en place cote klient * /
int cli_sock;
/ * Adresse de la Sokkel 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);

/ * Creation de la socket * /
cli.sock \u003d .............................
hvis cli_sock (\u003d\u003d -1) (
perror (''Impossible de Créer la socket'');
exit (-1);
)
/ * Mise en plass de la structure decrivant
* L'adresse et le port qui seront ASSOCIES
* A la socket * /
bzero ((char *) & distaddr, distaddr_len);
/ * Protokoll internett * /
distaddr.sin_family \u003d .......................
/ * På se connecte sur l'adresse de Boucle locale * /
distaddr.sin_addr.s_addr \u003d inet_addr (''127.0.0.1 ");
/ * På se connecte sur le port 1234 * /
distaddr.sin.port \u003d .............................
/ * Connexion au serveur * /
serv_sock \u003d ....................................
hvis serv_sock (\u003d\u003d -1) (
perror (''Impossible de se connecter'');
)
/ * På envoi la premiere operande * /
res \u003d .....................................
if (res! \u003d sizeof (int)) (
perror (''Impossible d'Envoyer les données'');
close (cli_sock);
exit (-1);
)

/ * På envoie la seconde operande * /
res \u003d send (cli_sock & b, sizeof (int), 0);
if (res! \u003d sizeof (int)) (
perror (''Impossible d'Envoyer les données'');
close (cli_sock);
exit (-1);
)
/ * På recupere le resultat * /
res \u003d ....................................
if (res! \u003d sizeof (int)) (
perror (''Impossible de lire les données'');
close (cli_sock);
exit (-1);
)
printf (''Resultat:% d \ n'', ntohl (buf));
.............................
close (serv_sock);
return 0;
)
Closed Thread

Hugseliste

Thread Tools Søk i denne tråden
Søk i denne tråden:

Avansert søk
Visningsmoduser Ranger denne tråden
Ranger denne tråden:

Innleggsaktivitet Regler
Du kanskje ikke poste nye tråder
Du kanskje ikke poste svar
Du kanskje ikke post vedlegg
Du kanskje ikke redigere innleggene dine

BB-kode er
Smilefjes er
[IMG] koden
HTML-koden Av
Pingbacks er
Refbacks er




Alle klokkeslett er GMT -4. Nå er klokken 09:11.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Language Translations Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
UNIX og Linux Forums Content Copyright © 1993-2009. All Rights Reserved.Ad Management by RedTyger

Content Relevant nettadresser av vBSEO 3.2.0