공부/LinuxServer
3. 클라이언트의 접속요청 확인하기 - listen()
MagicDog
2019. 5. 30. 19:20
1. header
#include <sys/socket.h>
2. function
int listen(int socket, int backlog);
1) int socket : 클라이언트의 접속요청을 받도록 설정 할 소켓 디스크립터.
2) int backlog : 대기 메시지 큐의 개수
3) 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, len) == -1){
fprintf(stderr, "Bind Error : %s\n", strerror(errno));
close(sock);
return(-1);
}else printf("bind\n");
if (listen(sock, 5) == -1) {
printf("listen fail\n");
}
}