글
■ 주소 정보 구조체 변수 생성 및 초기화에 이은 소켓에 주소정보를 할당.
(1) bind() - 주소정보 할당
○ 함수원형
int bind(int sockfd, struct sockaddr *myaddr, int addrlen)
○ 리턴 값
성공 시 : 0, 실패 시 : -1
- sockfd : 주소를 할당하고자 하는 소켓의 파일 디스크립터
- myaddr : 할당하고자 하는 주소 정보를 지니고 있는 sockaddr 구조체 변수의 포인터 인자 값
- addrlen : 인자로 전달된 주소 정보 구조체의 길이
=> 함수 호출이 성공하면 sockfd가 가리키는 소켓에 myaddr이 가리키는 주소 정보가 할당된다.
(2) 소켓생성 부터 주소할당까지 소스 예제
○ Source
○ Compile & Result
- bind 함수 원형을 보면 두번째 인자의 타입이 sockaddr* 로 되어있다.
- Source를 보면 bind()함수의 두번째 인자에서 구조체 타입 캐스팅을 확인할 수 있다.
※ bind() 함수는 인터넷 프로토콜을 위한 sockaddr_in 구조체의 포인터 뿐만 아니라, Local UNIX 프로토콜을 위한
sockaddr_un 구조체의 포인터 또한 인자값으로 받을 수 있어야한다.
=> 따라서 sockaddr이란 일반적인 구조체를 선언하고 인자 타입으로 지정한다.
'P rogramming > Socket' 카테고리의 다른 글
6. 연결 요청 대기 - listen() (0) | 2012.03.06 |
---|---|
5. 소켓옵션 - setsockopt() (3) | 2012.03.02 |
3. 주소 정보의 표현 (sockaddr / sockaddr_in) (4) | 2012.02.28 |
2. 프로토콜 정의 및 소켓 생성 - socket() (0) | 2012.02.27 |
1. 소켓 프로그래밍의 이해 (3) | 2012.02.27 |
RECENT COMMENT