I am trying to create a simple HTTP server in C.
Unfortunately, I'm not quite sure why this is the case, but I am getting "Cannot assign requested address" whenever I try to bind the socket to the address.
if ( bind(servfd, (struct sockaddr*)&servaddr, servaddr_size) != 0 ) { fprintf(stderr, "Failed to bind the socket to the network.\n"); fflush(stdout); perror("bind failed. Error"); return 1; } Here is my server address:
struct sockaddr_in servaddr; memset(&servaddr, '0', sizeof(servaddr)); servaddr.sin_family = AF_INET; servaddr.sin_port = INADDR_ANY; servaddr.sin_addr.s_addr = htons(PORT); And here is my server opt:
if ( setsockopt(servfd, SOL_SOCKET, SO_REUSEADDR, &opt, sizeof(opt)) != 0 ) { fprintf(stderr, "Failed to set sock opt.\n"); fflush(stdout); return 1; } I've tried to htonl the INADDR_ANY, I've tried to use inet("127.0.0.1"), inet("0.0.0.0"), and I've tried to change the port from multiple times. Hell, I tried running the app with sudo in case it was a permission error; it wasn't.
Any ideas?