Develop
2003.04.23 10:45

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

조회 수 6754 추천 수 0 댓글 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
번호 분류 제목 글쓴이 날짜 조회 수
793 Develop [ios] VIN Scanner (VIN barcode) 스캐너 file hooni 2017.09.16 758
792 Develop [android] 안드로이드 앱 문서 샘플 file hooni 2017.07.11 2203
791 Develop [coding] 공부해야 하는거 ㅋㅋ secret hooni 2017.06.27 0
790 Develop [coding] Find all anagrams in a string hooni 2017.06.27 1246
789 Develop [android] SQLiteOpenHelper를 이용한 DBManager hooni 2017.06.14 2155
788 Develop [android] 간단한 SQLIite 예제 hooni 2017.06.14 1439
787 Develop 캘리포니아 운전면허 족보 file hooni 2017.06.12 850
786 Develop 사이버보안실무 발표자료 (2017.06.08) file hooni 2017.06.05 1308
785 Develop 리팩토링 계획안 file hooni 2017.05.15 842
784 Develop [ios] 코코아 프로그래밍의 네이밍 룰(명명 규칙) hooni 2017.05.11 1260
783 Develop [ios] Facebook SDK 로그인 설명 file hooni 2017.04.19 1277
782 Develop [ios] NSString, RegularExpression Find/Replace hooni 2017.04.14 923
781 Develop [ios] 비디오,네트워크,소셜로그인 테스트 file hooni 2017.04.04 765
780 Develop [ios] Xcode에서 특정 파일만 ARC 따로 설정하는 방법 file hooni 2017.03.29 1062
779 Develop 사이버보안실무 수업 메모 secret hooni 2017.03.23 0
778 Develop Mac OS 에 Jenkins 설치하기 (Homebrew) 2 file hooni 2017.03.15 8361
Board Pagination Prev 1 2 3 4 5 6 ... 53 Next
/ 53