미리 보고 오면 좋은 함수
네트워크 프로그래밍을 처음 시작하면 가장 먼저 마주치는 함수가 바로 socket()
이 함수는 통신을 위한 "출입구"를 만드는 역할을 함
socket() 함수란?
네트워크 통신을 위한 소켓을 생성하는 함수
(소켓 : 프로세스 간 통신을 위한 파일 디스크립터)
Why Used?
프로그램이 네트워크를 통해 다른 프로그램과 통신하려면 "통로"가 필요하다.
그 통로를 만드는 것 -> socket()으로 만드는 소켓
함수 원형
int socket(int domain, int type, int protocol);
매개변수
- domain (주소 체계)
| 값 | 의미 |
| AF_INET | IPv4 |
| AF_INET6 | IPv6 |
| AF_UNIX | 로컬 통신 |
AF(Address Family)
- type (통신 방식)
| 값 | 의미 |
| SOCK_STREAM | TCP (연결지향, 신뢰성) |
| SOCK_DGRAM | UDP (비연결, 빠름) |
- protocol (프로토콜)
-> 보통은 0을 넣으면 자동으로 맞춰짐
0 → domain + type에 맞는 기본 프로토콜 사용
return(반환값)
성공 → 소켓 파일 디스크립터 (0 이상의 정수)
실패 → -1
헤더 파일
#include <sys/socket.h>
사용 예제
// IPv4 TCP 소켓 생성
int server_fd = socket(AF_INET, SOCK_STREAM, 0);
if (server_fd == -1) {
perror("socket 생성 실패");
}
/**
* socket()
*
* 실제로는 사용하기까지 한 단계가 부족한 상태
* - IP 없음
* - PORT 없음
* - 누구랑 통신해야할지 모르는 상태
*/
다음으로 공부해야 할 것
'정글캠프-WIL > C언어' 카테고리의 다른 글
| [C언어] - va_list 자료형 (1) | 2026.04.25 |
|---|---|
| [C언어] - connect() 함수 (0) | 2026.04.23 |
| [C언어] - accept() 함수 (0) | 2026.04.23 |
| [C언어] - listen() 함수 (0) | 2026.04.23 |
| [C언어] - bind() 함수 (0) | 2026.04.23 |