#include #include #include #include #include #include #include #define MAX_CHAR 256 int main() { int ID_socket_ser, ID_socket_ser2, result, long_cli; struct sockaddr_in address_ser, address_cli; char mensaje[MAX_CHAR]; printf("Probando sockets TCP (servidor)\n"); printf("Creando socket... "); ID_socket_ser=socket(AF_INET, SOCK_STREAM,0); if (ID_socket_ser==-1) { printf("error\n"); exit(-1); } else { printf("ok\n"); } printf("Haciendo bind local... "); address_ser.sin_family = AF_INET; address_ser.sin_addr.s_addr = htonl(INADDR_ANY); address_ser.sin_port = htons(6001); result = bind(ID_socket_ser, (struct sockaddr *) &address_ser, sizeof(address_ser)); if (result<0) { printf("error\n"); exit(-1); } else { printf("ok\n"); } printf("Nos ponemos a la escucha...\n"); listen(ID_socket_ser,1); long_cli = sizeof(address_cli); ID_socket_ser2 = accept(ID_socket_ser, (struct sockaddr *) &address_cli, &long_cli); if (ID_socket_ser2<0) { printf("Error aceptando conexión\n"); exit(-1); } else { printf("Conexión aceptada\n"); } printf("Recibiendo mensajes:\n"); do { memset(mensaje,0x0,MAX_CHAR); result = recv(ID_socket_ser2, mensaje, MAX_CHAR, 0); if (result<0) { printf("error\n"); exit(-1); } else { printf("%s\n",mensaje); } } while(strncmp(mensaje,"fin",3)); return 0; }