Skip to content

connect()

Purpose

connect() initiates a connection on a socket.

For TCP clients, it connects to the server address and port.

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

Prototype

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

Minimal Example

struct sockaddr_in addr = {0};
addr.sin_family = AF_INET;
addr.sin_port = htons(12345);
inet_pton(AF_INET, "127.0.0.1", &addr.sin_addr);

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

Common Pitfalls

  • Not handling EINPROGRESS for non-blocking sockets.
  • Forgetting to check connection completion with getsockopt(SO_ERROR) in non-blocking designs.
  • Using host byte order for port numbers.