미리 보고 오면 좋은 함수
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 |