작성날짜 : 2011-03-16 |
출처 : http://www.codesos.com/book/network/SOCKADDR_IN.html
SOCKADDR_IN 구조체는 아래와 같은 형태를 가집니다.
struct sockaddr_in{
short sin_family;
unsigned short sin_port;
struct in_addr sin_addr;
char sin_zero[8];
};
SOCKADDR_IN 구조체는 소켓이 접속해 있는 로컬 또는 원격지 주소를 표현하는데 사용됩니다. SOCKADDR_IN 구조체의 길이는 SOCKADDR 구조체의 길이와 동일합니다. 그러나 SOCKADDR_IN 구조체의 데이터 부분에 있는 필드들은 프로그램에 의한 관리가 가능할 정도로 명확하게 선언되어 있습니다. 일반적으로 프로그램은 변수를 SOCKADDR_IN 구조체로서 선언한 다음에 함수 호출 시 변수에 대한 포인터를 SOCKADDR 구조체로 캐스팅 해서 넘기는 방법을 주로 사용하고 있습니다.
Members
sin_family
주소 패밀리 (반드시 AF_INET이여야 합니다)
sin_port
네트웍 바이트 오더로 이루어진 포트 번호
sin_addr
네트웍 바이트 오더로 이루어진 아이피 번호
sin_zero
사용되지 않는 필드이며 0으로 설정될 수 있습니다. SOCKADDR에서 같의 위치의 같은 크기또한 사용하지 않습니다.
Comments
sin_addr 필드는 IN_ADDR 타입의 또 다른 구조체입니다. 프로그램은 IN_ADDR 구조체를 이용하여 IP 어드레스의 각 부분에 접근 할 수 있습니다. IN_ADDR 구조체는 윈도우즈 소켓 헤더 파일인 WINSOCK.H 에 다음과 같이 선언되어 있습니다.
struct in_addr {
union {
struct {
unsigned char s_b1,
s_b2,
s_b3,
s_b4;
} S_un_b;
struct {
unsigned short s_w1,
s_w2;
} S_un_w;
unsigned long S_addr;
} S_un;
};
'Programming > Network' 카테고리의 다른 글
[Network] IOCP (0) | 2015.05.11 |
---|---|
[Network] connect (0) | 2015.05.11 |
[Network] listen() (0) | 2015.05.11 |
[Network] bind (0) | 2015.05.11 |
[Network] Winsock (0) | 2015.05.11 |