The UNIX and Linux Forums  
Hej og Velkommen fra til UNIX og Linux Forums! Tak for dit besøg og deltager i vores globale samfund.

Go Back   UNIX og Linux Forums > Top Forums > UNIX for Advanced & Ekspertsøgning Brugere
.
google unix.com



UNIX for Advanced & Ekspertsøgning Brugere Expert-til-ekspert. Lær avancerede UNIX, UNIX-kommandoer, Linux operativsystemer, systemadministration, programmering, Shell, Shell Scripts, Solaris, Linux, HP-UX, AIX, OS X, BSD.

Mere UNIX og Linux Forum Emner du måske kan finde Helpful
Tråd Thread Starter Forum Svar Last Post
Problem i HP-Unix mens skriftligt i sokkel AshokG HP-UX 0 02-25-2005 02:19 AM
Socket Programming socket soshell Højtstående Programmering 2 06-29-2004 08:49 AM
Hvordan kan jeg program sokkel i UNIX? sanjohn Højtstående Programmering 7 06-21-2002 12:26 AM
Sådan bruges socket niuzefeng Højtstående Programmering 1 06-30-2001 02:15 PM
sokkel Amin IP Networking 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 Søg denne tråd Rate Thread Display Modes
  #1 (permalink)  
Old 05-20-2008
bounkolh bounkolh is offline
Registreret Bruger
  
 

Join Date: May 2008
Stillinger: 1
Unix: socket & Co

Hej,
Jeg har brug for hjælp til at erstatte ................. af client.c at anmode serveren gennemføres af server.c

------------------
Liste 1 - server.c

/ * Optagelse des différentes Biblioteker 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 vigtigste (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 socket 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 créer la socket'')
exit (-1);
)
/ * Mise en place de la struktur décrivant l'adresse
* Et le port qui seront associés à la socket * /
bzero ((char *) & localaddr, localaddr_len);
/ * Protocole internet * /
localaddr.sin_family \u003d AF.INET;
/ * On écoute sur l'adresse de boucle locale * /
localaddr.sin_addr.s_addr \u003d inet_addr (''127.0.0.1'');
/ * On écoute sur le port 1234 * /
localaddr.sin_port \u003d htons (1234);

/ * Den attache la socket 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 place de l'écoute sur la socket * /
if (lyt (serv_sock, 1) \u003d\u003d -1) (
perror (''Impossible d'Ecouter sur la socket'');
exit (-1);
)
/ * Den accepté les Connexions entrantes * /
cli_sock \u003d accept (serv_sock,
(struct sockaddr *) & distaddr,
& distaddr_len);
if (cli_sock \u003d\u003d -1) (
perror (''Erreur de connexion du client'');
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);

/ * Den 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);
/ * Den envoie Le résultat * /
res \u003d send (cli_sock, & buf, sizeof (int), 0);
if (res! \u003d sizeof (int)) (
perror (''Erreur de transmission de données'');
close (serv_sock);
exit (-1)
)
close (serv_sock);
close (cli_sock);
return ();
)
-----------------
Liste 2 - client.c

/ / Integration des différentes Biblioteker 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 vigtigste (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 socket 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);

/ * Oprettelse de la socket * /
cli.sock \u003d .............................
if (cli_sock \u003d\u003d -1) (
perror (''Impossible de créer la socket'');
exit (-1);
)
/ * Mise en place de la struktur decrivant
* L'adresse et le port qui seront associés
* A la socket * /
bzero ((char *) & distaddr, distaddr_len);
/ * Protocole internet * /
distaddr.sin_family \u003d .......................
/ * On se connecte sur l'adresse de boucle locale * /
distaddr.sin_addr.s_addr \u003d inet_addr (''127.0.0.1 ");
/ * On se connecte sur le port 1234 * /
distaddr.sin.port \u003d .............................
/ * Connexion au serveur * /
serv_sock \u003d ....................................
if (serv_sock \u003d\u003d -1) (
perror (''Impossible de se connecter'');
)
/ * Den envoi la premiere operande * /
res \u003d .....................................
if (res! \u003d sizeof (int)) (
perror (''Impossible d'Envoyer les données'');
close (cli_sock);
exit (-1);
)

/ * Den 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);
)
/ * Den recupere Le résultat * /
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);
tilbagevenden 0;
)
Closed Thread

Bogmærker

Thread Tools Søg denne tråd
Søg denne tråd:

Avanceret søgning
Display Modes Bedøm denne tråd
Bedøm denne tråd:

Udstationering Regler
Du kan ikke post nye tråde
Du kan ikke post svar
Du kan ikke post vedhæftede filer
Du kan ikke redigere dine indlæg

BB-kode er
Smilies er
[IMG] koden er
HTML-koden er Slukket
Trackbacks er
Pingbacks er
Refbacks er




Alle tidspunkter er GMT -4. Den tid er nu 12:29 AM.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Oversættelser Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
UNIX og Linux Forums Content Copyright © 1993-2009. Alle rettigheder Reserved.Ad Management ved RedTyger

Content Relevant webadresser ved vBSEO 3.2.0