The UNIX and Linux Forums  


Go Back   El UNIX y Linux Foros > Arriba Foros > UNIX para usuarios avanzados y expertos
.
google unix.com



UNIX para usuarios avanzados y expertos Experto a experto. Aprender avanzada UNIX, los comandos de UNIX, Linux, Sistemas Operativos, Administración de Sistemas, Programación, Shell, Shell Scripts, Solaris, Linux, HP-UX, AIX, OS X, BSD.

Más UNIX y Linux Foro Temas usted puede encontrar útiles
Hilo Hilo para principiantes Foro Respuestas Último mensaje
Problema en HP-Unix, mientras que la escritura en zócalo AshokG HP-UX 0 02-25-2005 02:19 AM
Programación zócalo zócalo soshell Programación de Alto Nivel 2 06-29-2004 08:49 AM
¿Cómo puedo programa toma en unix? sanjohn Programación de Alto Nivel 7 06-21-2002 12:26 AM
Cómo utilizar el zócalo niuzefeng Programación de Alto Nivel 1 06-30-2001 02:15 PM
zócalo amin Redes 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 vínculo Herramientas de hilo Buscar en este Hilo Tasa de Hilo Modos de visualización
  #1 (Enlace permanente)  
Old 05-20-2008
bounkolh bounkolh is offline
Usuario Registrado
  
 

Fecha: Mayo 2008
Publicaciones: 1
Unix: socket & Co

Hola,
Necesito ayuda para reemplazar el ................. client.c petición de que el servidor ejecutado por server.c

------------------
Listado 1 - server.c

/ * Inclusión de las distintas bibliotecas se precisan * /
# 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 de mise en place côté serveur * /
int serv_sock;
/ * Socket de mise en place lado del cliente * /
int cli_sock;
/ * Dirección de la toma 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 toma de * /
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 (imposible de creer''la toma'')
exit (-1);
)
/ * Mise en place de la estructura décrivant l'adresse
* Y el puerto qui seront asociados a la toma de * /
bzero ((char *) & localaddr, localaddr_len);
/ * Protocolo de Internet * /
localaddr.sin_family \u003d AF.INET;
/ * En écoute sur l'adresse de BOUCLE local * /
localaddr.sin_addr.s_addr \u003d inet_addr (127.0.0.1'''');
/ * El écoute sobre el puerto 1234 * /
localaddr.sin_port \u003d htons (1234);

/ * El agregado de la toma de puerto 1234 al sur
* L'adresse locale 127.0.0.1 * /
if (obligar (serv_sock,
(struct sockaddr *) & localaddr,
localaddr_len) \u003d\u003d -1) (
perror (''imposible la toma de attacher'');
exit (-1);
)
/ * Mise en place de l'écoute sur la toma * /
if (escuchar (serv_sock, 1) \u003d\u003d -1) (
perror (''Imposible d'ecouter sur la toma'');
exit (-1);
)
/ * El accepte las conexiones entrantes * /
cli_sock \u003d aceptar (serv_sock,
(struct sockaddr *) & distaddr,
y distaddr_len);
if (cli_sock \u003d\u003d -1) (
perror (''Erreur de conexión del cliente'');
exit (-1);
)
/ * Recoit en la première operande * /
res \u003d recv (cli_sock, &buf; sizeof (int), 0);
if (res! \u003d sizeof (int)) (
perror (Donnees recues incorrectes'''');
estrecha (serv_sock);
exit (-1);
)
a \u003d ntohl (buf);
printf (''recu:% d / n'', a);

/ * El recoit LA DEUXIEME operande * /
res \u003d recv (cli_sock, & buf, sizeof (a), 0);
if (res! \u003d sizeof (int)) (
perror (Donnees recues incorrectes'''');
estrecha (serv_sock);
exit (-1);
)
b \u003d ntohl (buf);
printf (''recu:% d \ n'', b);

buf htonl \u003d (a + b);
printf (''envoi:% d \ n'', a + b);
/ * El envoie le Resultat * /
res \u003d enviar (cli_sock, & buf, sizeof (int), 0);
if (res! \u003d sizeof (int)) (
perror (''Erreur de transmisión de donnees'');
estrecha (serv_sock);
salida (-1)
)
estrecha (serv_sock);
estrecha (cli_sock);
volver ();
)
-----------------
Listado de 2 - client.c

/ / Inclusión de las distintas bibliotecas se precisan
# 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 de mise en place cote serveur * /
int serv_sock;
/ * Socket de mise en place cote cliente * /
int cli_sock;
/ * Dirección de la toma 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);

/ * Creación de la toma de * /
cli.sock \u003d .............................
if (cli_sock \u003d\u003d -1) (
perror (imposible de creer''la toma'');
exit (-1);
)
/ * Mise en place de la estructura decrivant
* L'adresse et le port qui seront ASSOCIES
* A la toma de * /
bzero ((char *) & distaddr, distaddr_len);
/ * Protocolo de Internet * /
distaddr.sin_family \u003d .......................
/ * El se connecte sur l'adresse de BOUCLE local * /
distaddr.sin_addr.s_addr \u003d inet_addr (''127.0.0.1 ");
/ * El se connecte sobre el puerto 1234 * /
distaddr.sin.port \u003d .............................
/ * Conexión al servidor * /
serv_sock \u003d ....................................
if (serv_sock \u003d\u003d -1) (
perror (''imposible''conector de sí);
)
/ * En la premier envoi operande * /
res \u003d .....................................
if (res! \u003d sizeof (int)) (
perror (''Imposible d'envoyer les donnees'');
estrecha (cli_sock);
exit (-1);
)

/ * El envoie la segunda operande * /
res \u003d enviar (cli_sock, & b, sizeof (int), 0);
if (res! \u003d sizeof (int)) (
perror (''Imposible d'envoyer les donnees'');
estrecha (cli_sock);
exit (-1);
)
/ * El recupere le Resultat * /
res \u003d ....................................
if (res! \u003d sizeof (int)) (
perror (''imposible de liras les DONNEES'');
estrecha (cli_sock);
exit (-1);
)
printf (''Resultado:% d \ n'', ntohl (buf));
.............................
estrecha (serv_sock);
return 0;
)
Closed Thread

Marcadores

Herramientas de hilo Buscar en este Hilo
Buscar en este Hilo:

Búsqueda avanzada
Modos de visualización Vota a este hilo
Vota a este hilo:

Normas de envío
puede que no nuevo puesto de hilos
puede que no enviar respuestas
puede que no enviar archivos adjuntos
puede que no editar sus puestos

Código BB es Encendido
Emoticones son Encendido
[IMG] código Encendido
Código HTML es Apagado
Trackbacks son Encendido
Pingbacks son Encendido
Refbacks son Encendido




Todas las horas son GMT -4. La hora es 05:19 AM.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Traducciones de idiomas Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Estudios
El UNIX y Linux Foros Contenido Copyright © 1993-2009. Todos los derechos Reserved.Ad Gestión por RedTyger

Las direcciones URL de contenido vBSEO 3.2.0