UDP 소켓의 갯수가 너무 많아서요~~

익명 사용자의 이미지

클라언트들에서 UDP로 메세지를 보내고 있습니다.

한 7000여개의 클라이언트들에거 메세지를 보내고 받아야 하는데,

sockfd = socket(AF_INET , SOCK_DGRAM,0)

가 생성자에서 열씸히 7000번을 돌아야 하는데,

약 1000개이상 부터는 sockfd를 잡지를 못합니다. -1을 보내버리죠.

이럴때는 어떻게 해야 하나요?

혹시 앞번호부터 잡아주어서 지워주면 다음부터는 또 번호를 받는 건가요????

익명 사용자의 이미지

tcp는 연결지향이기 때문에,
각각 클라이언트와 서버간에 11 소켓이 필요하지만,

udp 전송할때 소켓은 하나만 맹글어도 됩니다.;;

즉 하나만 생성해서 클라이언트 아이피포트로 루프 돌면서
전송하시면 됩니다.

(ps. udp도 컨넥션을 맹글어서 하는게 있기는 합니다.)

익명 사용자의 이미지

냉무