Skip to content

bind()

Purpose

bind() assigns a local address and port to a socket.

TCP servers usually call bind() before listen().

#include <sys/types.h>
#include <sys/socket.h>

Prototype

int bind(int sockfd, const struct sockaddr *addr, socklen_t addrlen);

Minimal Example

struct sockaddr_in addr = {0};
addr.sin_family = AF_INET;
addr.sin_addr.s_addr = htonl(INADDR_ANY);
addr.sin_port = htons(12345);

if (bind(fd, (struct sockaddr *)&addr, sizeof(addr)) < 0) {
    perror("bind");
    return -1;
}

Common Pitfalls

  • Forgetting htons() for port numbers.
  • Forgetting SO_REUSEADDR during repeated local testing.
  • Binding to a specific interface when INADDR_ANY was intended.