티스토리 뷰

Programming/Socket

socket : socket()

글그리 2017. 2. 2. 22:49

socket을 사용해서 네트워크 프로그램을 만들려면 socket을 만들어야 한다. 먼저 Linux에서 사용되는 BSD socket(이하 socket) 을 만드는 방법을 알아보자.


socket을 만드는 함수는 socket() 함수이다.


int socket(int domain, int type, int protocol);


domain

소켓을 어떤 영역에서 사용할 것인지에 대한 정보이다.


 AF_UNIX

 시스템 내부에서 프로세스간 통신할 때 사용한다.

 AF_INET

 IPv4를 사용해서 인터넷 영역에서 통신할 때 사용한다.

 AF_IPX

 Novell Internet 프로토콜이지만 이제 사용하지 않는다.

 AF_INET6

 IPv6를 사용해서 인터넷 영역에서 통신할 때 사용한다.

 AF_X25

 아마추어 라디오용 프로토콜이다.


type

통신에 사용할 프로토콜 유형을 정하기 위한 인자다.


 SOCK_STREAM

 연결지향 TCP/IP 통신 프로토콜

 SOCK_DGRAM

 데이터그램 방식의 UDP/IP 통신 프로토콜

 SOCK_RAW

 TCP/IP를 직접 다루게 하는 프로토콜


protocol

통신에 사용할 프로토콜을 정하기 위한 인자다.


 IPPROTO_TCP

 TCP프로토콜. AF_INET, SOCK_STREAM과 함께 사용한다.

 IPPROTO_UDP

 UDP프로토콜. AF_INET, SOCK_DGRAM과 함께 사용한다.


함수의 반환값은 생성된 socket의 지정번호로 Linux에서는 fd, Windows에서는 socket지정번호가 반환된다. 둘 다 int로 받을 수 있기 때문에 int변수에 저장해서 사용하면 된다.


인터넷 영역에서 TCP/IP 프로토콜을 사용해서 통신을 하기 위한 socket을 만드는 코드는 다음과 같다.


sockfd = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함