// server_in.c #include #include #include #include #include main() { int i; int fd1, fd2; struct sockaddr_in saddr; struct sockaddr_in caddr; int len; int ret; char buf[1024]; if ((fd1 = socket(AF_INET, SOCK_STREAM, 0)) < 0) { perror("socket"); exit(1); } bzero((char *)&saddr, sizeof(saddr)); saddr.sin_family = AF_INET; saddr.sin_addr.s_addr = inet_addr("127.0.0.1"); saddr.sin_port = htons(9999); unlink(SOCK_NAME); if (bind(fd1, (struct sockaddr *)&saddr, sizeof(saddr) ) < 0){ perror("bind"); exit(1); } if (listen(fd1, 1) < 0) { perror("listen"); exit(1); } for(;;) { len = sizeof(caddr); if ((fd2 = accept(fd1, (struct sockaddr *)&caddr, &len)) < 0) { perror("accept"); exit(1); } close(fd1); while (ret = read(fd2, buf, 1024)) { for (i=0; i< ret; i++) { if (isalpha(buf[i])) buf[i] = toupper(buf[i]); } write(fd2, buf, 1024); } close(fd2); } }