Contents

Develop
2003.04.23 10:45

[c] 소켓주소 구조체에 대해..

조회 수 6736 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
소켓을 이용할 통신객체(클라이언트/서버)의 구체적인 주소를 표현하기 위해
주소체계(address family), IP주소, 포트번호 세가지가 지정 되어야 하며
이 세가지 주소 정보를 소켓주소(socket address)라고 부른다.

소켓 프로그래밍에서는 소켓주소를 담을 구조체 sockaddr을 정의 하였다.
2바이트의 address family 와 14바이트의 주소(IP 주소 + 포트번호)

---------------------------------------------------------
  struct sockaddr{
      u_short sa_family; // address family
      char sa_data[14]; // 주소
  };
---------------------------------------------------------

그러나 위의 소켓구조체에서 IP주소, 포트번호 등을 직접 쓰거나 읽기가 불편하므로
인터넷프로그래밍에서는 sockaddr 구조체 대신
4바이트의 IP주소와 2바이트의 포트번호를 구분하여 지정할 수 있는
인터넷 전용 소켓 주소 구조체 sockaddr_in 을 주로 사용한다.

---------------------------------------------------------
  struct in_addr{
      u_long s_addr; // 32비트의 IP주소를 저장할 구조체
  };

  struct sockaddr_in{
      short sin_family;           // 주소체계
      u_short sin_port;           // 16비트 포트번호
      struct in_addr sin_addr; // 32비트 IP주소
      char sin_zero[8];         // 16바이트 크기를 맞추기 위한 dummy
  };
---------------------------------------------------------

위에서 주소체계 sin_family로 선택할 수 있는 것은 다음과 같다.
인터넷에서는 항상 인터넷 주소체계()를 선택하여야 한다.
sin_family: 
AF_INET  : 인터넷 주소 체계
AF_UNIX  : UNIX 주소 체계
AF_NS     : XEROX 주소 체계

소켓 구조체는 다음을 각각 나타내기 위해 사용된다.
- 자신의 IP 주소, 자신의 포트번호
- 상대방의 IP주소, 상대방의 포트번호


?

List of Articles
번호 분류 제목 글쓴이 날짜 조회 수
1041 Develop [ios] FlckrFeed Example App (Swift) file hooni 2016.11.27 1087
1040 PPT [ppt] 정보보호관리 발표내용 file hooni 2016.11.30 1088
1039 System/OS Enable the Develop Menu in Safari file hooni 2017.02.07 1093
1038 Develop [maven] Mac OS에 메이븐(maven) 설치하기 file hooni 2015.01.21 1116
1037 Develop [js] 문자열에서 숫자만 걸러내기 (jQuery 안쓰고 정규표현식) hooni 2017.12.14 1119
1036 Develop [ios] UIView 계층구조 hooni 2015.01.03 1134
1035 Etc 원어민이 매일 쓰는 일상표현 150개 file hooni 2023.09.17 1140
1034 Develop GPL, AGPL, MPL,.. 한눈에 보는 오픈소스SW 라이선스 file hooni 2014.10.14 1149
1033 Develop [coding] Find all anagrams in a string hooni 2017.06.27 1157
1032 Develop [ios] Objective-C Types & Storage Capacity hooni 2015.07.22 1169
1031 PPT [ppt] OCB기술개발팀 OJT 자료 file hooni 2015.11.13 1170
1030 Develop macOS에 node, npm 설치하기 (homebrew) file hooni 2021.11.06 1170
Board Pagination Prev 1 ... 7 8 9 10 11 12 13 14 15 16 ... 98 Next
/ 98