블로그 이미지
Kanais
Researcher & Developer 퍼즐을 완성하려면 퍼즐 조각들을 하나 둘씩 맞춰나가야 한다. 인생의 퍼즐 조각들을 하나 둘씩 맞춰나가다 보면 인생이란 퍼즐도 완성되는 날이 오려나...?

calendar

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

Notice

2015. 5. 11. 15:45 Programming/Network

작성날짜    : 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
posted by Kanais