I. syntax
#include <sys/socket.h>
#include <arpa/inet.h>
int socket(int domain, int type, int protocol);
II. return
성공 시 파일 디스크립터, 실패시 -1 반환
III. parameters
1. int domain
이름 | 프로토콜 체계(Protocol Family) |
PF_INET | IPv4 인터넷 프로토콜 체계 |
PF_INET6 | IPv6 인터넷 프로토콜 체계 |
PF_LOCAL | 로컬 통신을 위한 UNIX 프로토콜 체계 |
PF_PACKET | Low Level 소켓을 위한 프로토콜 체계 |
PF_IPX | IPX 노벨 프로토콜 체계 |
2. int type
타입 | 의미, 특징 |
SOCK_STREAM | 연결지향형 소켓(tcp) |
중간에 데이터가 소멸되지 않고 목적지로 전송된다. 전송 순서대로 데이터가 수신된다. 전송되는 데이터의 경계(Boundary)가 존재하지 않는다. |
|
SOCK_DGRAM | 비 연결지향형 소켓(udp) |
전송된 순서에 상관없이 가장 빠른 전송을 지향한다. 전송된 데이터는 손실의 우려가 있고, 파손의 우려가 있다. 전송되는 데이터의 경계(Boundary)가 존재한다. 한번에 전송할 수 있는 데이터의 크기가 제한된다. |
3. int protocol
프로토콜 | 의미 |
IPPROTO_TCP | TCP 소켓 |
IPPROTO_UDP | UDP 소켓 |
두번째 parameter 까지만 해도 필요한 정보가 다 전달되니 일반적으로 0을 입력한다. 다만, 하나의 프로토콜 체계 안에 데이터의 전송방식이 동일한 프로토콜이 둘 이상 존재하는 경우에는 명시해줘야 한다.
'컴퓨터 > C' 카테고리의 다른 글
C 네트워크 주소 정보의 표현 (0) | 2022.11.04 |
---|---|
C bind() (0) | 2022.11.04 |
C soket 소켓 생성 과정 (0) | 2022.11.03 |
C module 모듈화 (0) | 2022.11.02 |
C Macro 매크로 (0) | 2022.11.01 |