소켓은 서버와 클라이언트에서 모두 필요한데, 이를 위해 socket()시스템 콜을 호출한다.
성공적으로 수행되면 소켓번호(int)를 리턴하고,
에러가 발생하면 -1을 리턴한다.
---------------------------------------------------------
┌ 프로토콜 체계 ┌ 소켓에 사용될 프로토콜
int socket( domain, type, protocol);
└ 서비스 타입
---------------------------------------------------------
domain :
PF_INET : 인터넷 프로토콜 체계 사용
PF_UNIX : UNIX 방식의 프로토콜 체계 사용
PF_NS : XEROX 방식의 프로토콜 체계 사용
소켓은 TCP/IP(인터넷) 만을 위하여 정의된 것이 아니다.
따라서 TCP/IP프로토콜을 사용하려면 소켓을 개설할때 프로토콜 체계를 지정해야 하며 이를 위해
domain을 PF_INET으로 선택하여야 한다.
type :
SOCK_STREAM : 스트림 방식의 소켓 생성 (연결형)
SOCK_DRAM : 데이터그램 방식의 소켓 생성 (비연결형)
type은 서비스타입을 말하는데, 연결형과 비연결형을 선택한다.
protocol은 소켓을 지원하는 프로토콜을 지정하는데 일반적으로
0을 쓰면 시스템이 자동으로 설정해준다.