Nselectsocket

Description
¼ÒÄϵé·ÎºÎÅÍ Æ¯Á¤ÇÑ ÇൿÀ» ±â´Ù¸°´Ù.

Syntax
S32 Nselectsocket(S32 nfds, fd_set *readfds, fd_set *writefds, fd_set *exceptfds, struct timeval *timeout)

Parameters
nfds¼ÒÄÏÀÇ ¼ö
readfds µ¥ÀÌÅÍ°¡ Àְųª ¼ÒÄÏÀÇ »óÅ°¡ ¹Ù²ï ¼ÒÄÏ ½Äº°ÀÚµé
writefds ¼ÒÄÏÀÌ Ãß°¡·Î µ¥ÀÌÅ͸¦ ¹Þ¾ÆµéÀÏ ¼ö Àְųª ¿¡·¯°¡ ¹ß»ýÇÑ ¼ÒÄÏ ½Äº°ÀÚµé
exceptfds out-of-band µ¥ÀÌÅ͸¦ °®´Â ¼ÒÄÏ ½Äº°ÀÚµé
timeoutŸÀÓ ¾Æ¿ô

Returns
-1¿¡·¯
0 ŸÀÓ ¾Æ¿ôÀÌ ¹ß»ýÇßÀ» °æ¿ì
> 0 ÁÖ¾îÁø ÀÛ¾÷À» À§ÇØ ÁغñµÈ ¼ÒÄÏÀÇ ¼ö

Comments
fd_setÀ» À§Çؼ­ ÇÊ¿äÇÑ ¸ÅÅ©·Î´Â ´ÙÀ½°ú °°´Ù.

FD_ZERO(&fd_set) ¼ÒÄÏ ¸®½ºÆ®¸¦ 0À¸·Î ÃʱâÈ­ÇÑ´Ù. FD_SET(s, &fd_set) »õ·Î¿î ¼ÒÄÏ s¸¦ ¸®½ºÆ®¿¡ Ãß°¡ÇÑ´Ù. FD_CLR(s, &fd_set) ¸®½ºÆ®·ÎºÎÅÍ ¼ÒÄÏ s¸¦ »èÁ¦ÇÑ´Ù. FD_ISSET(s, &fd_set) ¼ÒÄÏs°¡ ¸®½ºÆ®¿¡ ÀÖÀ» °æ¿ì 0ÀÌ ¾Æ´Ñ °ªÀ» °¡Áø´Ù.
ŸÀӾƿô °ªÀÇ ¼³Á¤À» À§Çؼ­ timevalÀ̶ó´Â ±¸Á¶Ã¼°¡ Áö¿øµÈ´Ù. timevalÀÇ ±¸Á¶´Â ´ÙÀ½°ú °°´Ù.

struct timeval { /* Time-out format for select() */
   long tv_sec; /* seconds */
   long tv_usec; /* microseconds */
} ;

Æ÷ÀÎÅÍ°¡ ³ÎÀÌ¸é ¹«ÇÑ´ëÀÇ Å¸ÀӾƿôÀ» °¡Áø´Ù.

Example
S32 s1, s2, s3; /* sockets */
S32 rc;
fd_set socket_set1, socket_set2;
...
FD_ZERO(&socket_set1);
FD_ZERO(&socket_set2);
FD_SET(s1, &socket_set1);
FD_SET(s3, &socket_set1);
FD_SET(s2,&socket_set2);
rc = Nselectsocket(3, &socket_set1, &socket_set2, 0 , NULL);
if ( rc < 0 )
   /* process error */