#include #include #include #include #include #include #include #include int main(int argc, char **argv) { if (argc != 2) errx(1, "Usage: %s \n", argv[0]); int port = strtol(argv[1], NULL, 10); if (port < 0 || port > 65535) errx(1, "bad port"); struct sockaddr_in sin; memset(&sin, 0, sizeof(sin)); sin.sin_family = AF_INET; sin.sin_addr.s_addr = INADDR_ANY; sin.sin_port = htons(port); int s; if ((s = socket(PF_INET, SOCK_STREAM, 0)) == 0) err(1, "socket"); if (bind(s, (struct sockaddr*)&sin, sizeof(sin)) != 0) err(1, "bind"); if (listen(s, 10) != 0) err(1, "listen"); int ss; int count = 0; while ((ss = accept(s, 0, 0)) != -1) printf("Opened %d sockets\n", ++count); if (ss == -1) err(1, "accept"); return 0; }