#include <sys/types.h>#include <sys/socket.h>#include <stdio.h>#include <netinet/in.h>#include <string.h>#include <unistd.h>#include <errno.h>#define BACKLOG 10 int main (void){ int sockfd, c_fd; struct sockaddr_in my_addr, c_addr; int enviado = 0; socklen_t sin_size; char *caracter = "ahora si funciona XD\n"; int len = strlen(caracter); if ((sockfd=socket (AF_INET, SOCK_STREAM, 0)) == -1) { printf("\nError en socket\n"); return -1; } my_addr.sin_family = AF_INET; my_addr.sin_port = htons(2000); my_addr.sin_addr.s_addr = INADDR_ANY; memset(&(my_addr.sin_zero), '\0', 8); if (bind(sockfd, (struct sockaddr *)&my_addr, sizeof(my_addr)) == -1) { printf("\nError en bind\n"); return -1; } printf("\nServidor a la escucha\n"); if (listen(sockfd, BACKLOG) == -1) { printf("Error en listen"); return -1; } sin_size = sizeof(struct sockaddr_in); if((c_fd = accept( sockfd, (struct sockaddr *)&c_addr, &sin_size)) == -1) { printf("Error en accept"); return -1; } if((enviado = send(c_fd, caracter, len, 0)) == -1) { perror("send"); return -1; } printf("Pulsa Intro para finalizar..."); fflush(stdin); getchar(); close(sockfd); close(c_fd); return 0;}