select.i を使用した tcp および udp の echoclient サーバーのコード スニペットを次に示します。まず、なぜ max(tcp_sfd,udp_sfd) を取っているのでしょうか?
fd_set fdvar;
FD_ZERO(&fdvar);
FD_SET(tcp_sfd,&fdvar);
FD_SET(udp_sfd,&fdvar);
int maxpl = max(tcp_sfd,udp_sfd);
cout << "Waiting for a client...\n";
if(select(maxpl+2 ,&fdvar,NULL,NULL,NULL)==-1)
{
perror("error in select");
}
if(FD_ISSET(udp_sfd,&fdvar))
{
// UDP
}
else
{
//TCP
}