1. header
#include <sys/socket.h>
2. function
int bind(int socketfd, struct sockaddr* address, socklen_t addressLength);
1) int socket : socket()등으로 생성한 소켓 디스크립터.
2) struct sockaddr* address : 주소 정보를 담은 구조체. 통신 주체에 따라서 달라집니다.
struct |
내용 |
sockaddr |
기본 구조체. |
sockaddr_in |
AF_INET인 경우. (IPv4) |
sockaddr_in6 |
AF_INET6인 경우. (IPv6) |
sockaddr_un |
AF_UNIX 또는 AF_LOCAL인 경우. (Unix Domain Socket) |
3) socklen_t addressLength : address 구조체의 크기.
4) return :
성공 |
실패 |
0 |
-1 |
3. 사용
#include <stdio.h>
#include <unistd.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <errno.h>
#define PORT 80
int main()
{
int sock = socket(AF_INET, SOCK_STREAM, 0);
struct sockaddr_in addr;
socklen_t len = sizeof(addr);
addr.sin_family = AF_INET;
addr.sin_port = htons(PORT);
addr.sin_addr.s_addr = htonl(INADDR_ANY);
if(bind(sock, (struct sockaddr*)&addr, sizeof(addr)) == -1){
fprintf(stderr, "Bind Error : %s\n", strerror(errno));
close(sock);
return(-1);
}else printf("bind\n");
}
'공부 > LinuxServer' 카테고리의 다른 글
5. 클라이언트의 접속 요청을 허락하고 통신용 소켓 생성 - accept() (2) | 2019.06.10 |
---|---|
4. 클라이언트에서 서버에 연결 요청하기 - connect() (0) | 2019.06.06 |
3. 클라이언트의 접속요청 확인하기 - listen() (0) | 2019.05.30 |
1. 소켓 만들기 - socket() (0) | 2019.04.26 |
0. 리눅스 TCP/IP 통신 (0) | 2019.04.26 |