#include #include #include #include #include #include /* Internet domain header */ #include /* only needed on my mac */ int main() { // create socket int listen_soc = socket(AF_INET, SOCK_STREAM, 0); if (listen_soc == -1) { perror("server: socket"); exit(1); } //initialize server address struct sockaddr_in server; server.sin_family = AF_INET; server.sin_port = htons(54321); memset(&server.sin_zero, 0, 8); server.sin_addr.s_addr = INADDR_ANY; // bind socket to an address if (bind(listen_soc, (struct sockaddr *) &server, sizeof(struct sockaddr_in)) == -1) { perror("server: bind"); close(listen_soc); exit(1); } // Set up a queue in the kernel to hold pending connections. if (listen(listen_soc, 5) < 0) { // listen failed perror("listen"); exit(1); } struct sockaddr_in client_addr; unsigned int client_len = sizeof(struct sockaddr_in); client_addr.sin_family = AF_INET; int return_value = accept(listen_soc, (struct sockaddr *)&client_addr, &client_len); return 0; }