#include #include #include #include #include #include int main() { int fd; socklen_t len; struct sockaddr_in r, q; int c; if ((fd = socket(AF_INET, SOCK_STREAM, 0)) < 0) { perror("socket"); return(1); } memset(&r, '\0', sizeof r); r.sin_family = AF_INET; r.sin_addr.s_addr = INADDR_ANY; r.sin_port = 2000; if (bind(fd, (struct sockaddr *)&r, sizeof r) < 0) { perror("bind"); return(1); } if (listen(fd, 5)) { perror("listen"); return(1); } while (1) { len = sizeof q; if ((fd = accept(fd, (struct sockaddr *)&q, &len)) >= 0) { switch (read(fd, &c, 1)) { case -1: perror("read"); return(1); case 1: write(fd, &c, sizeof c); } } } }