The UNIX and Linux Forums  

Go Back   UNIX och Linux Forum > Upp Forum > UNIX för avancerade & Expertanvändare
.
google unix.com



UNIX för avancerade & Expertanvändare Expert-to-experten. Läs avancerade UNIX UNIX-kommandon, Linux operativsystem, systemadministration, programmering, Shell, Shell Scripts, Solaris, Linux, HP-UX, AIX, OS X, BSD.

Mer UNIX och Linux Forum Ämnen Du kan hitta Helpful
Tråd Thread Starter Forum Svar Senaste Inlägg
Problem med HP-Unix samtidigt skriftligen till uttaget AshokG HP-UX 0 02-25-2005 02:19
Socket Programming socket soshell High Level Programming 2 06-29-2004 08:49
Hur kan jag programmera uttaget i UNIX? sanjohn High Level Programming 7 06-21-2002 12:26
Hur du använder uttaget niuzefeng High Level Programming 1 06-30-2001 02:15
socket amin IP Nätverk 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 denna tråd Rate Thread Visningslägen
  #1 (permalänk)  
Old 05-20-2008
bounkolh bounkolh is offline
Registered User
  
 

Join Date: maj 2008
Inlägg: 1
Unix: socket & Co

Hej,
Jag behöver hjälp att byta ut ................. av client.c att begära servern genomfört server.c

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

/ * Införande des différentes Bibliotek 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 viktigaste (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 plats 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) (
printf (''Impossible de creer 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;
/ * 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 socket au port 1234 sur
* L'adresse locale 127.0.0.1 * /
if (bind (serv_sock,
(struct sockaddr *) & localaddr,
localaddr_len) \u003d\u003d -1) (
printf (''Impossible d'attacher la socket'');
exit (-1);
)
/ * Mise en place de l'écoute sur la socket * /
if (Lyssna (serv_sock, 1) \u003d\u003d -1) (
printf (''Impossible d'écouter sur la socket'');
exit (-1);
)
/ * På Accepté les connexions entrantes * /
cli_sock \u003d acceptera (serv_sock,
(struct sockaddr *) & distaddr,
& distaddr_len);
if (cli_sock \u003d\u003d -1) (
printf (''Erreur de connexion du client'');
exit (-1);
)
/ * Om recoit la première operande * /
res \u003d recv (cli_sock, &buf; sizeof (int), 0);
if (res! \u003d sizeof (int)) (
printf (''Données reçues incorrectes'');
close (serv_sock);
exit (-1);
)
a \u003d ntohl (buf);
printf (''reçu:% d / n'', a);

/ * På recoit La deuxième operande * /
res \u003d recv (cli_sock, & buf, sizeof (i), 0);
if (res! \u003d sizeof (int)) (
printf (''Données reçues incorrectes'');
close (serv_sock);
exit (-1);
)
b \u003d ntohl (buf);
printf (''reçu:% d \ n'', b);

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

/ / Integration des différentes Bibliotek 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 viktigaste (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);

/ * Creation de la socket * /
cli.sock \u003d .............................
if (cli_sock \u003d\u003d -1) (
printf (''Impossible de creer la socket'');
exit (-1);
)
/ * Mise en place de la struktur decrivant
* L'adresse et le port qui seront Associes
* 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) (
printf (''Impossible de se connecter'');
)
/ * På envoi LA Premiere operande * /
res \u003d .....................................
if (res! \u003d sizeof (int)) (
printf (''Impossible d'Envoyer les DONNEES'');
close (cli_sock);
exit (-1);
)

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

Komihåglista

Thread Tools Sök i denna tråd
Sök i denna tråd:

Avancerad sökning
Visningslägen Betygsätt denna tråd
Betygsätt denna tråd:

Utstationering Regler
Du får inte efter nya trådar
Du får inte efter svar
Du får inte skicka bilagor
Du får inte redigera dina inlägg

BB-kod är
Smilies är
[IMG] kod
HTML-koden är Av
Trackback är
Pingbacks är
Refbacks är




Alla tider är GMT -4. Klockan är nu 01:11.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Översättningar Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
UNIX och Linux Forum Innehållet upphovsrättsskyddat © 1993-2009. All Rights Reserved.Ad förvaltning RedTyger

Content Relevant webbadresser från vBSEO 3.2.0