Implementación comunicación Cliente Servidor (C)

Por favor, colaboren. El código funciona, pero seguro puede mejorarse la presentación, explicación, etc.
Basado en la clase de Guido del 01/09/09
Servidor.c
#include <stdio.h> #include <stdlib.h> #include <string.h> #include <sys/socket.h> #include <netinet/in.h> #include <arpa/inet.h> #define PORT 5000 /* /etc/services */ typedef struct sockaddr *sad; void error (char *s) { perror(s); exit (-1); } int main () { int sock, sock1; struct sockaddr_in sin, sin1; char linea[1024]; socklen_t l; int cto; /* ito o que se yo */ if ((sock = socket (PF_INET, SOCK_STREAM, )) <) error("socket"); /* armamos la dirección */ memset(&sin, , sizeof sin); sin.sin_family = AF_INET; sin.sin_port = htons(PORT); /* adapta segun sea little o big endian) */ sin.sin_addr.s_addr = INADDR_ANY; /* */ if(bind(sock, (sad) &sin, sizeof sin)<) error ("bind"); /* */ if (listen(sock, 5) < ) /* El maximo es 5 */ error ("listen"); /*esperando*/ l = sizeof(sin1); if((sock1 = accept(sock, (sad)&sin1, &l)) < ) error("accept"); printf(" viene de [%s, %d] \n ", inet_ntoa(sin.sin_addr), ntohs(sin.sin_port)); if ((cto = read(sock1, linea, sizeof(linea)))<) error("read"); linea[cto] = ; printf( "llega [%s] \n", linea); linea[]++; if (write(sock1, linea, cto) < ) error("write"); close(sock1); close(sock); return ; }
Cliente.c
#include <stdio.h> #include <stdlib.h> #include <string.h> #include <unistd.h> #include <sys/uio.h> #include <sys/types.h> #include <sys/socket.h> #include <netinet/in.h> #include <arpa/inet.h> #define PORT 5000 typedef struct sockaddr *sad; void error(char *s) { exit((perror(s), -1)); } int main () { int sock; struct sockaddr_in sin; char linea[1024]; int cto; /* SOCK_DGRAM es para UDP */ if ((sock = socket(PF_INET, SOCK_STREAM, ))<) error("socket"); sin.sin_family = AF_INET; sin.sin_port = htons(PORT); inet_aton("127.0.0.1", &sin.sin_addr); /* llamamos */ if (connect(sock, (sad) &sin, sizeof(sin))<) error("connect"); /*comunicacion */ if (write (sock, "hola Mundo", 10) < ) error("write"); if ((cto = read(sock, linea, sizeof(linea))) < ) error ("read"); linea[cto]=; printf("nos devuelven [%s] \n", linea); close(sock); return ; }
Trackback URL for "Implementación comunicación Cliente Servidor (C)"
http://www.odiolasllaves.com.ar/trackback/117
»
- Inicie sesión o regístrese para enviar comentarios

Creo que no Funciona
Creo que este código no funciona ya que los if's están de esta forma: if(y < ) le falta el lado derecho de la comparación entre otros muchos errores que se pueden observar a simple vista.
Crees o no crees? jeje Es un
Crees o no crees? jeje
Es un error en la visualización del codigo. A la derecha del simbolo hay ceros (0) pero por un error en la presentación no se muestran. Creo que ademas es medio obvio. Perdón, pero el comentario suena medio pedante. Disculpas si no es asi.
¿Que otros errores ves?
Repito, el código funciona. Ahora que retomo el desarrollo del sitio voy a ir solucionando estos pequeños errores.
Gracias por comentar.
Les recuerdo que si se registran los comentarios se publican sin necesidad de que los apruebe y pueden editar el código ustedes mismo.
Saludos.