bind(), connect()를 사용하는 socket(:12) 네트워크:::프로그래밍(:12)에서 주소와 포트정보를 저장하기 위해서 사용한다.
<</usr/include/bits/socket.h>>
struct sockaddr
{
unsigned short sa_family; // Address family and length
char sa_data[14]; // Address data
}
위의 네트워크 관련 함수들은 기본 데이터형으로 sockaddr 을 받아들인다. 그런데 sockaddr 로는 다양한 유형의 socket을 받아들일 수 없다. 예를 들어 AF_INET 소켓도 있고 AF_UNIX 소켓이 있는데 이들은 구조자체가 완전히 다르기 때문이다.
AF_INET의 경우에는 struct sockaddr_in 을 사용하고 AF_UNIX 의 경우에는 struct sockaddr_un 을 사용한다. 그러므로 실제 소켓 프로그래밍에서는 sockaddr 로 형변환을 해서 사용해야 한다. 형변환된 데이터를 받아들인 함수는 sa_family 값을 이용해서 데이터의 종류를 알아낼 수 있다.
AF_UNIX에서의 사용
사용
struct sockaddr_in
struct sockaddr_un
Recent Posts
Archive Posts
Tags