bind Function
int bind(int sockfd, const struct sockaddr *addr, socklen_t addrlen);
성공 : 0, 실패 : -1
- sockfd : 주소를 할당할 서버 소켓 디스크립터
- addr : 서버의 주소 정보를 담은 구조체(IP주소, 포트 번호 등)
- addrlen : addr에 저장된 주소 정보 크기(byte)
수신된 패킷의 포트번호와 이를 처리할 프로세스를 지정하기 위해 <포트번호-
프로세스(소켓)>을 연결
서버 주소 정보를 addr을 통해 전달 가능
recvfrom Function
ssize_t recvform(int sockfd, void* buf, size_t len, int flags, struct
sockaddr* src_addr, socklen_t* addrlen);
성공 : 수신한 데이터의 길이(byte), 실패 : -1
- sockfd : 데이터를 전송할 소켓 디스크립터
- buf : 수신할 데이터를 저장할 버퍼의 포인터
- len : 전송한 데이터의 길이(버퍼의 크기)
- flags : 전송 시 사용할 옵션
[MSG_OOB ; SOCK_STREAM에만 사용, out-of-band 데이터(긴급한 데이터)로 전
송될 수 있음을 표시함]
[MSG_DONTROUTE : 데이터는 라우팅 될 수 없음으로 지정]
[MSG_DONTWAIT : NONE BLOCKING 통신이 가능하게 함]
(NONE BLOCKING 통신 : buf의 데이터가 있으면 그대로 수행, 없으면 반복적으
로 buf의 데이터 있는 지 확인)
[MSG_NOSIGNAL : 상대와의 연결이 끊겼을 경우, SIGPIPE 시그널을 받지 않도
록 함]
- src_addr : 발송지 주소
- addrlen : src_addr의 실제 크기(byte)
sendto Function
ssize_t sendto(int sockfd, const void* buf, size_t len, int flags, const
struct sockaddr* dest_addr, socklen_t addrlen);
성공 : 송신한 데이터의 길이(byte), 실패 : -1
- sockfd : 데이터를 전송할 소켓 스크립터
- buf : 전송할 데이터를 가진 버퍼의 포인터
- len : buf의 송신할 데이터의 길이(byte)
- flags : 전송 시 사용 옵션
[MSG_OOB ; SOCK_STREAM에만 사용, out-of-band 데이터(긴급한 데이터)로 전
송될 수 있음을 표시함]
[MSG_DONTROUTE : 데이터는 라우팅 될 수 없음으로 지정]
[MSG_DONTWAIT : NONE BLOCKING 통신이 가능하게 함]
(NONE BLOCKING 통신 : buf의 데이터가 있으면 그대로 수행, 없으면 반복적으
로 buf의 데이터 있는 지 확인)
[MSG_NOSIGNAL : 상대와의 연결이 끊겼을 경우, SIGPIPE 시그널을 받지 않도
록 함]
- dest_addr : 목적지 주소
- addrlen : dest_addr의 실제 크기(byte)
'Computer Science > Network' 카테고리의 다른 글
Network] 도메인 네임의 주요 함수 (0) | 2016.07.21 |
---|---|
Network] 네트워크 주소와 호스트 주소 변환 방법 (0) | 2016.07.21 |
Network] TCP 상태 전이 (0) | 2016.07.21 |
Network] TCP 소켓 데이터 전송 특징 (0) | 2016.07.21 |
Network] TCP 기반 클라이언트 프로그램 주요 함수 (0) | 2016.07.21 |