The UNIX and Linux Forums  
Hello and Welcome-tól az Egyesült Államokat, hogy az UNIX és Linux Forums? Köszönjük, hogy meglátogatta és csatlakozik Globális Közösség.

Go Back   A UNIX és Linux Forums > Top Fórumok > A UNIX a fejlett és szakértői Felhasználók
.
google unix.com



A UNIX a fejlett és szakértői Felhasználók Szakértő-to-szakértő. Tudjon fejlett UNIX, UNIX parancsokat, a Linux operációs rendszereket, Rendszeradminisztráció, programozás, a Shell, a Shell Scripts, Solaris, Linux, HP-UX, AIX, OS X, BSD.

Több, UNIX és Linux fórum témák Ön által talált Hasznos
Szál Thread Starter Fórum Válaszok Utolsó hozzászólás
Probléma HP Unix-írás közben a foglalat AshokG HP-UX 0 02-25-2005 02:19 AM
Socket Programozás aljzat soshell Magas szintű Programozás 2 06-29-2004 08:49 AM
Hogyan lehet a program unix socket? sanjohn Magas szintű Programozás 7 06-21-2002 12:26 AM
Hogyan kell használni az aljzat niuzefeng Magas szintű Programozás 1 06-30-2001 02:15 PM
aljzat 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 Téma eszközök Keresés a téma Rate Thread Megjelenítési módok
  #1 (permalink)  
Old 05-20-2008
bounkolh bounkolh is offline
Regisztrált felhasználó
  
 

Join Date: May 2008
Hozzászólások: 1
Unix: socket & Co

Helló,
Segítségre van szükségem, hogy helyettesítsék a ................. A client.c, hogy kérje meg a kiszolgáló által végrehajtott server.c

------------------
Listing 1 - server.c

/ * Inclusion des différentes könyvtáraikat 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 hely côté serveur * /
int serv_sock;
/ * Socket mise en hely côté kliens * /
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 Creer de la socket'')
exit (-1);
)
/ * Mise en place de la szerkezet 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;
/ * A ecoute sur l'adresse de boucle locale * /
localaddr.sin_addr.s_addr \u003d inet_addr (''127.0.0.1'');
/ * A ecoute sur le port 1234 * /
localaddr.sin_port \u003d htons (1234);

/ * Az attasé 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'ecoute sur la socket * /
if (listen (serv_sock, 1) \u003d\u003d -1) (
perror (''Impossible d'écouter sur la socket'');
exit (-1);
)
/ * A accepte les kapcsolatai 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);
)
/ * On 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);

/ * A recoit 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);
exit (-1);
)
b \u003d ntohl (buf);
printf (''Recu:% d \ n'', b);

htonl buf \u003d (a + b);
printf (''Envoi:% d \ n'', a + b);
/ * A envoie le resultat * /
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) bekezdése
)
close (serv_sock);
close (cli_sock);
return ();
)
-----------------
2. lista - client.c

/ / Inclusion des différentes könyvtáraikat 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 hely cote serveur * /
int serv_sock;
/ * Socket mise en hely cote kliens * /
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);

/ * Creation de la socket * /
cli.sock \u003d .............................
if (cli_sock \u003d\u003d -1) (
perror (''Impossible Creer de la socket'');
exit (-1);
)
/ * Mise en place de la szerkezet 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'');
)
/ * A envoi la premiere operande * /
res \u003d .....................................
if (res! \u003d sizeof (int)) (
perror (''Impossible d'Envoyer les données'');
close (cli_sock);
exit (-1);
)

/ * A 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);
)
/ * A recupere le resultat * /
res \u003d ....................................
if (res! \u003d sizeof (int)) (
perror (''Impossible de lire les données'');
close (cli_sock);
exit (-1);
)
printf (''Eredmény:% d \ n'', ntohl (buf));
.............................
close (serv_sock);
return 0;
)
Closed Thread

Könyvjelzõk

Téma eszközök Keresés a téma
Keresés a téma:

Részletes keresés
Megjelenítési módok Rate this thread
Rate this thread:

Posting szabályzat
Ön nem post new threads
Ön nem post válaszok
Ön nem post Csatolmányok
Ön nem szerkeszteni az üzeneteidet

BB kód van Be
Smilies vannak Be
[IMG] kód Be
HTML kód Ki
Trackbacks vannak Be
Pingbacks vannak Be
Refbacks vannak Be




Minden idő GMT -4. Az idő most 04:39 AM.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Nyelvre lefordítva Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
A UNIX és Linux Fórum Tartalom Copyright © 1993-2009. Minden jog Reserved.Ad menedzsment RedTyger

Content Relevant URLs by vBSEO 3.2.0