본문 바로가기

정글캠프-WIL/C언어

[C언어] - connect() 함수


미리 보고 오면 좋은 함수

[C언어] - socket() 함수


connect() 함수란?
클라이언트 소켓이 서버와 연결을 시도하는 함수

Why Used?

클라이언트가 connect()를 호출함으로써 TCP 3-way handshake 시작

Client → SYN →
Server → SYN+ACK →
Client → ACK →

연결 완료 후 서버의 accept() 작동

함수 원형

int connect(int sockfd, const struct sockaddr *addr, socklen_t addrlen);
매개변수 설명
sockfd socket()으로 생성한 소켓 파일 디스크립터
addr IP 주소 + 포트 번호를 담은 구조체
addrlen 구조체의 크기

sockaddr에 대해서 : bind() 함수 읽어보시면 나옵니다.

return (반환값)

0 : 성공

-1 : 실패

헤더 파일

#include <sys/socket.h>

사용 예시

#include <stdio.h>
#include <string.h>
#include <arpa/inet.h>
#include <unistd.h>

int main() {
    int client_fd;
    struct sockaddr_in server_addr;

    // 1. 소켓 생성
    client_fd = socket(AF_INET, SOCK_STREAM, 0);

    // 2. 서버 주소 설정
    memset(&server_addr, 0, sizeof(server_addr));
    server_addr.sin_family = AF_INET;
    server_addr.sin_port = htons(8080);
    inet_pton(AF_INET, "127.0.0.1", &server_addr.sin_addr);

    // 3. 서버에 연결
    if (connect(client_fd, (struct sockaddr *)&server_addr, sizeof(server_addr)) == -1) {
        perror("connect failed");
        return -1;
    }

    printf("서버 연결 성공!\n");

    // 4. 통신 가능 상태
    // send / recv 사용 가능

    close(client_fd);
    return 0;
}

'정글캠프-WIL > C언어' 카테고리의 다른 글

[C 언어] - memset() 함수  (0) 2026.04.25
[C언어] - va_list 자료형  (1) 2026.04.25
[C언어] - accept() 함수  (0) 2026.04.23
[C언어] - listen() 함수  (0) 2026.04.23
[C언어] - bind() 함수  (0) 2026.04.23