![]() |
|
|
google unix.com
|
|||||||
| Foros | Registro | Reglas de los Foros | Enlaces | Álbumes | Preguntas más frecuentes | Lista de miembros | Calendario | Búsqueda | Puestos de hoy | Marcar Foros Como Leídos |
| 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 |
![]() |
|
|
Linkback vínculo | Herramientas de hilo | Buscar en este Hilo | Tasa de Hilo | Modos de visualización |
|
|
|
||||
|
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; ) |
![]() |
| Marcadores |
| Herramientas de hilo | Buscar en este Hilo |
| Modos de visualización | Vota a este hilo |
|
|