- Today
- Total
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 재능이의 돈버는 일기
- StresslessLife
- K_JIN2SM
- 소소한 일상
- My Life Style & Memory a Box
- Blog's generation
- 공감 스토리
- 취객의 프로그래밍 연구실
- Love Me
- Dream Archive
- 세상에 발자취를 남기다 by kongmingu
- hanglesoul
- 카마의 IT 초행길
- 느리게.
- 미친듯이 즐겨보자..
- Joo studio
- Gonna be insane
- 악 다 날아갔어!! 갇대밋! 왓더...
- xopowo05
- 맑은공기희망운동
- 엔지니어 독립운동
- 혁준 블로그
- Simple in Complex with Simple
- 무의식이 의식을 지배한다
드럼치는 프로그래머
[TCP/IP] PF_INET과 AF_INET 비교 본문
소켓 프로그래밍 하다보면 AF_INET을 쓰는데가 있고, PF_INET을 쓰는데가 있다.
이에 이 두 개념에 대한 내용을 정리해 보고자 한다.
다음의 코드를 살펴보자.
servSock = socket( PF_INET, SOCK_STREAM, IPPROTO_TCP );
여기서 SOCK_STREAM 으로 되어있습니다. 이것은 연결형 서버를 말하는 겁니다. 즉, TCP의 서비스를 이용하겠다는 것입니다. 여기서 마지막 인자를 IPPROTO_TCP 라고 되어있는데 꼭 이렇게 써주는 것은 아닙니다. 보통은 0 값을 전달합니다. 어느 것을 사용하나 상관은 없습니다. 명시적인 것이 좋으신 분은 IPPROTO_TCP라고 써주시면 되겠습니다.
여기서 PF_INET 를 사용했는데 AF_INET 와 무엇이 다를까요?
PF 는 Protocol Family 의 약자이고 AF는 Address Family의 약자입니다. 글자는 달라도 내부적으로는 구분하지 않는다고 합니다. 그래서 여러 곳에서는 각각 다릅니다. PF_INET를 사용하는 것이 있고 AF_INET를 사용하는 곳도 있습니다.
여기에 접두어가 자신이 알기 쉽다고 생각하시는 것을 사용하시면 될 듯합니다. 중요한 것은 IPv4라는 겁니다. IPv6은 AF_INET6이라는 것을 사용합니다. 만약에 IP프로토콜 독립적으로 구성하고자 하시려면 이것을 고려 해주셔야 합니다.
다음으로 서버의 주소를 지정하고 bind 시켰습니다.
memset( &echoServAddr, 0, sizeof( echoServAddr ) );
echoServAddr.sin_family = AF_INET;
echoServAddr.sin_addr.s_addr = htonl( INADDR_ANY );
echoServAddr.sin_port = htons( echoServPort );
if( bind( servSock, ( struct sockaddr * ) &echoServAddr, sizeof( echoServAddr ) ) < 0 ){
printf( "bind() failed" );
exit( 1 );
}
[출처] PF_INET과 AF_INET 비교|작성자 몽키몽키
'★─Programing > ☆─TCP IP' 카테고리의 다른 글
[TCP/IP] Echo (에코) 프로그램 Client (리눅스) (0) | 2008.12.13 |
---|---|
[TCP/IP] Echo (에코) 프로그램 Server (리눅스) (1) | 2008.12.13 |
[TCP/IP] CreateThread 후에 바로 CloseHandle하는 이유 (0) | 2008.05.09 |
[TCP/IP] CreateThread() (0) | 2008.05.09 |
[TCP/IP] 임계영역 (Critical Section) (0) | 2008.04.28 |