UDP와 Select()

게임 서버 프로그래밍/네트워크 잡것들

2020. 2. 27. 14:53

'멀티플레이어 게임 프로그래밍' 공부를 하던중 select()가 나와서 문득 궁금해졌다.

UDP 관련 Select() 예제는 왜 없지? 심지어 설명도 ....

TCP에서는 select()를 사용하는 것 같은데 UDP는 언급 자체가 없다.

게임 개발에 있어서 TCP는 오히려 지양한다고 하셔서 (참고)

근데 select()는 분명히 현역이랬는데 ?? 그렇다면 UDP에서도 쓰인다는 말 아닌가?

 

흐음 .. 일단 구글링을 시작했다.

일단 KDLP의 글 하나가 올라와 있다. (링크)

 

(소켓관련)udp에서 select 함수를 어떻게 사용해야 하나요? | KLDP

여기 저기 검색을 해서 찾아 보면 tcp에 대한 select 사용법만 있더군요 udp와 tcp가 사용법이 같은건가요? tcp방식은 accept할때 마다 소켓디스크립터를 증가 시켜주는데 비해 udp방식은 하나의 소켓디스크립터를 사용하기 때문에 select함수 사용을 어떻게 해야 할지 도무지 감이 안옵니다. 제가 지금 p2p 프로그램을 짜려고 하는데 udp로 select + thread로 구현하려고 합니다. 가능한지요? 책을 읽어 봐도 잘 모르겠네요. 그럼

kldp.org

요약하자면 Select()의 등장배경 자체가 폴링해야 할 소켓의 수가 상당히 많을 때 논블로킹 I/O 효율이 떨어져서

나왔다 이건데, 어느 정도 수를 다루냐에 따라서 UDP는 Select() 함수를 안써도 효율이 뽑힌다는 것이다.

 

그러니까 결론은 쓸 수있다! 단, 상황에 따라서 처리하자.. 

'게임 서버 프로그래밍 > 네트워크 잡것들' 카테고리의 다른 글

용량 ㅜ  (0) 2021.10.19
mysqld port 문제..  (0) 2021.10.11
Centos7 + nginx + php-fpm 설정  (0) 2021.10.04
Packet Generator에 대한 고찰  (0) 2020.11.08
select함수의 writefds  (0) 2020.04.16