#include <sys/socket.h>
#include <netinet/in.h>
+void *receiver_worker(void *arg)
+{
+ int sock = (int)arg;
+ printf("Received worker for socket %u\n", sock);
+ pthread_exit(0);
+}
+
int get_server_socket(unsigned short port)
{
int server_sock;
{
int server_sock = get_server_socket(2007);
+ // FIXME: fire off sender workers here
+
+ /*
+ * Listen for incoming connections, spawning off one receiver
+ * thread for each (which will just gobble up the data until
+ * we're done).
+ */
+ for ( ;; ) {
+ struct sockaddr_in addr;
+ socklen_t addr_len = sizeof(addr);
+ pthread_t thread;
+
+ int sock = accept(server_sock, (struct sockaddr *)&addr, &addr_len);
+ if (sock == -1) {
+ perror("accept()");
+ exit(1);
+ }
+
+ pthread_create(&thread, NULL, receiver_worker, (void *)sock);
+ }
+
exit(0);
}