.\" Copyright (c) 1983, 1991, 1993 .\" The Regents of the University of California. All rights reserved. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" 3. All advertising materials mentioning features or use of this software .\" must display the following acknowledgement: .\" This product includes software developed by the University of .\" California, Berkeley and its contributors. .\" 4. Neither the name of the University nor the names of its contributors .\" may be used to endorse or promote products derived from this software .\" without specific prior written permission. .\" .\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE .\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" .\" @(#) getsockopt. 2 8.4 (Berkeley) 5/2/95 .\" %FreeBSD: src/lib/libc/sys/getsockopt. 2, v 1.12. 2.11 2002/01/09 17:44:15 yar Exp % .\" .\" $FreeBSD: doc/ja_JP.eucJP/man/man2/getsockopt. 2, v 1.10 2002/01/11 04:53:00 horikawa Exp $ .Dd May 2, 1995 .Dt GETSOCKOPT 2 .Os .Sh ¸íĪ .Nm getsockopt , .Nm setsockopt .Nd ¼ÒÄÏÀÇ ¿É¼ÇÀÇ Ãëµæ°ú ¼³Á¤ .Sh ÇÁ·Î±×·¥ ¶óÀ̺귯¸® .Lb libc .Sh ¼­½Ä .In sys/types.h .In sys/socket.h .Ft int .Fn getsockopt "int s" "int level" "int optname" "void *optval" "socklen_t *optlen" .Ft int .Fn setsockopt "int s" "int level" "int optname" "const void *optval" "socklen_t optlen" .Sh ÇØ¼³ .Fn getsockopt (¿Í)°ú .Fn setsockopt (Àº)´Â, ¼ÒÄÏ¿¡ ´ëÀÀÇÑ´Ù .Em ¿É¼Ç (À»)¸¦ Á¶ÀÛÇÕ´Ï´Ù. ¿É¼ÇÀº º¹¼öÀÇ ÇÁ·ÎÅäÄÝ ·¹º§¿¡ Á¸ÀçÇÒ °¡´É¼ºÀÌ ÀÖ½À´Ï´Ù. À̰͵éÀº ¹Ýµå½Ã ÃÖ»óÁ¤µµÀÇ .Dq ¼ÒÄÏ ·¹º§¿¡ Á¸ÀçÇÕ´Ï´Ù. .Pp ¼ÒÄÏ ¿É¼ÇÀ» Á¶ÀÛÇÒ ¶§´Â, ¿É¼ÇÀÌ »óÁÖÇÏ´Â ·¹º§ ¹× ¿É¼ÇÀÇ À̸§À» ÁöÁ¤ÇÒ Çʿ䰡 ÀÖ½À´Ï´Ù. ¼ÒÄÏ ·¹º§·Î ¿É¼ÇÀ» Á¶ÀÛÇÏ·Á¸é .Fa level (À»)¸¦ .Dv SOL_SOCKET (À¸)·Î¼­ ÁöÁ¤ÇÕ´Ï´Ù. ´Ù¸¥ ·¹º§·Î ¿É¼ÇÀ» Á¶ÀÛÇÏ·Á¸é , ¿É¼ÇÀ» Á¦¾îÇϰí ÀÖ´Â ÀûÀýÇÑ ÇÁ·ÎÅäÄÝÀÇ ÇÁ·ÎÅäÄÝ ¹øÈ£¸¦ ÁöÁ¤ÇÕ´Ï´Ù. ¿¹¸¦ µé¸é, ¿É¼ÇÀÌ .Tn TCP ÇÁ·ÎÅäÄÝ¿¡ ÀÇÇØ ÇØ¼®µÇ´Â °ÍÀ» Áö½ÃÇÏ·Á¸é , .Fa level (À»)¸¦ .Tn TCP ÀÇ ÇÁ·ÎÅäÄÝ ¹øÈ£·Î ¼³Á¤ÇÒ Çʿ䰡 ÀÖ½À´Ï´Ù. .Xr getprotoent 3 (À»)¸¦ ÂüÁ¶ÇØ ÁÖ¼¼¿ä. .Pp ÆÄ¶ó¹ÌÅÍ .Fa optval (¿Í)°ú .Fa optlen (Àº)´Â, .Fn setsockopt ÇÏÁö¸¸ ¿É¼ÇÄ¡¿¡ ¾×¼¼½º Çϱâ À§Çؼ­ »ç¿ëµË´Ï´Ù. .Fn getsockopt ÀÇ °æ¿ì, À̰͵éÀº ¿ä±¸µÈ ¿É¼ÇÀÇ °ªÀÌ µ¹·ÁÁÖ¾îÁø´Ù ¹öÆÛ¸¦ ½Äº°ÇÕ´Ï´Ù. .Fn getsockopt ÀÇ °æ¿ì, .Fa optlen (Àº)´Â ¡¸°ª - °á°ú¡¹ÆÄ¶ó¹ÌÅÍÀ̸ç, Ãʱ⿡´Â .Fa optval (ÀÌ)°¡ °¡¸®Å°´Â ¹öÆÛÀÇ »çÀÌÁî°¡ µé¾î°¡ ÀÖ¾î ±Í°¡½Ã¿¡ ¼öÁ¤µÇ¾î µ¹·ÁÁÖ¾îÁø °ªÀÇ ½ÇÁ¦ÀÇ »çÀÌÁ ³ªÅ¸³»°Ô µË´Ï´Ù. ¿É¼ÇÄ¡¸¦ ÁöÁ¤ÇÏÁö ¾Ê´ÂÁö, ¶Ç´Â ¿É¼ÇÄ¡°¡ µ¹·ÁÁÖ¾îÁöÁö ¾ÊÀº °æ¿ì, .Fa optval ¿¡ NULL ¸¦ ÁöÁ¤Çصµ ±¦Âú½À´Ï´Ù. .Pp .Fa optname ¹× ÁöÁ¤ÀÇ ¿É¼ÇÀº, ÇØ¼®µÇÁö ¾Ê°í , ÇØ¼®¿ëÀÇ ÇØ´ç ÇÁ·ÎÅäÄÝ ¸ðµâ¿¡°Ô °Ç³×Áý´Ï´Ù. ÀÎŬ·çµå ÆÄÀÏ .Ao Pa sys/socket.h Ac ¿¡´Â Èļú ÇÏ´Â ¼ÒÄÏ ·¹º§ ¿É¼Ç¿ëÀÇ Á¤Àǰ¡ µé¾î°¡ ÀÖ½À´Ï´Ù. ´Ù¸¥ ÇÁ·ÎÅäÄÝ ·¹º§ÀÇ ¿É¼ÇÀº Çü½Ä°ú ¸íĪÀÌ ´Ù¾çÇÕ´Ï´Ù. ¸Þ´º¾óÀÇ ¼½¼Ç 4 ÀÇ ÇØ´çÇÏ´Â ¿£Æ®¸®¸¦ ÂüÁ¶ÇØ ÁÖ¼¼¿ä. .Pp ´ëºÎºÐÀÇ ¼ÒÄÏ ·¹º§ÀÇ ¿É¼ÇÀº .Fa optval ¿ëÀ¸·Î .Fa int ÆÄ¶ó¹ÌÅ͸¦ »ç¿ëÇÕ´Ï´Ù. .Fn setsockopt ÀÇ °æ¿ì, ºÒ ¿¬»êÀ» À¯È¿ÇÏ°Ô Çϱâ À§Çؼ­´Â ÆÄ¶ó¹ÌÅÍ´Â 0 ÀÌ ¾Æ´Ò Çʿ䰡 ÀÖ¾î, ¿É¼ÇÀ» ¹«È¿·Î ÇÏ´Â °æ¿ì´Â 0 ÀÏ Çʿ䰡 ÀÖ½À´Ï´Ù. .Dv SO_LINGER (Àº)´Â, .Ao Pa sys/socket.h Ac ±×¸®°í Á¤ÀǵǾú´Ù .Fa struct linger ÆÄ¶ó¹ÌÅ͸¦ »ç¿ëÇÕ´Ï´Ù. À̰ÍÀº, ¸ñÀû »óÅÂÀÇ ¿É¼Ç°ú ¸µ°¡-ÀÎÅ͹ú (Èļú)À» ÁöÁ¤ÇÕ´Ï´Ù. .Dv SO_SNDTIMEO (¿Í)°ú .Dv SO_RCVTIMEO (Àº)´Â, .Ao Pa sys/time.h Ac ±×¸®°í Á¤ÀǵǾú´Ù .Fa struct timeval ÆÄ¶ó¹ÌÅ͸¦ »ç¿ëÇÕ´Ï´Ù. .Pp ÀÌÈÄÀÇ ¿É¼ÇÀÌ ¼ÒÄÏ ·¹º§·Î Àνĵ˴ϴÙ. º°±âÇßÀ» °æ¿ì¸¦ Á¦¿ÜÇØ, °¢ ¿É¼ÇÀÌ .Fn getsockopt ±×¸®°í Á¶»çÇÒ ¼ö ÀÖ¾î .Fn setsockopt ±×¸®°í ¼³Á¤µË´Ï´Ù. .Bl -column SO_ACCEPTFILTER -offset indent .It Dv SO_DEBUG Ta "µð¹ö±× Á¤º¸ÀÇ ±â·ÏÀ» À¯È¿ÇÏ°Ô ÇÕ´Ï´Ù" .It Dv SO_REUSEADDR Ta "·ÎÄà ÁÖ¼ÒÀÇ Àç»ç¿ëÀ» À¯È¿ÇÏ°Ô ÇÕ´Ï´Ù" .It Dv SO_REUSEPORT Ta "Áߺ¹ ÇÑ ÁÖ¼Ò¿Í Æ÷Æ®ÀÇ ¹ÙÀε带 À¯È¿ÇÏ°Ô ÇÕ´Ï´Ù" .It Dv SO_KEEPALIVE Ta "Á¢¼ÓÀ» º¸°ü À¯ÁöÇÏ´Â °ÍÀ» À¯È¿ÇÏ°Ô ÇÕ´Ï´Ù" .It Dv SO_DONTROUTE Ta "¹ß½Å ¸Þ¼¼Áö¿¡ ´ëÇØ °æ·Î ¼³Á¤ ¿ìȸµµ·Î¸¦ À¯È¿ÇÏ°Ô ÇÕ´Ï´Ù" .It Dv SO_LINGER Ta "µ¥ÀÌÅͰ¡ Á¸ÀçÇÏ´Â °æ¿ì´Â Ŭ·Î¿ìÁî·Î Áö¿¬ ÇÕ´Ï´Ù" .It Dv SO_BROADCAST Ta "ºê·Îµåij½ºÆ® ¸Þ¼¼Áö¸¦ ¼Û½ÅÇÏ´Â ÆÛ¹Ì¼ÇÀ» À¯È¿ÇÏ°Ô ÇÕ´Ï´Ù" .It Dv SO_OOBINLINE Ta "¹êµå³»¿¡¼­ÀÇ ¹êµå¿Ü µ¥ÀÌÅÍÀÇ ¼ö½ÅÀ» À¯È¿ÇÏ°Ô ÇÕ´Ï´Ù" .It Dv SO_SNDBUF Ta "Ãâ·Â¿ëÀÇ ¹öÆÛ »çÀÌÁ ¼³Á¤ÇÕ´Ï´Ù" .It Dv SO_RCVBUF Ta "ÀԷ¿ëÀÇ ¹öÆÛ »çÀÌÁ ¼³Á¤ÇÕ´Ï´Ù" .It Dv SO_SNDLOWAT Ta "Ãâ·Â¿ëÀÇ ÃÖ¼Ò Ä«¿îÆ®¸¦ ¼³Á¤ÇÕ´Ï´Ù" .It Dv SO_RCVLOWAT Ta "ÀԷ¿ëÀÇ ÃÖ¼Ò Ä«¿îÆ®¸¦ ¼³Á¤ÇÕ´Ï´Ù" .It Dv SO_SNDTIMEO Ta "Ãâ·Â¿¡ ´ëÇÑ Å¸ÀÓ ¾Æ¿ôÄ¡¸¦ ¼³Á¤ÇÕ´Ï´Ù" .It Dv SO_RCVTIMEO Ta "ÀԷ¿¡ ´ëÇÑ Å¸ÀÓ ¾Æ¿ôÄ¡¸¦ ¼³Á¤ÇÕ´Ï´Ù" .It Dv SO_ACCEPTFILTER Ta "±â´Ù¸®°í ¼ÒÄÏ¿¡¼­ÀÇ ¹Þ¾Æ ¿ëÇÊÅ͸¦ ¼³Á¤ÇÕ´Ï´Ù" .It Dv SO_TYPE Ta "¼ÒÄÏÀÇ Å¸ÀÔÀ» ÃëµæÇÕ´Ï´Ù (Ãëµæ¸¸)" .It Dv SO_ERROR Ta "¼ÒÄÏÀÇ ¿¡·¯¸¦ ÃëµæÇØ Ŭ¸®¾î ÇÕ´Ï´Ù (Ãëµæ¸¸)" .El .Pp .Dv SO_DEBUG (Àº)´Â ÇÏÃþÀÇ ÇÁ·ÎÅäÄÝ ¸ðµâ³»¿¡¼­ µð¹ö±×¸¦ À¯È¿ÇÏ°Ô ÇÕ´Ï´Ù. .Dv SO_REUSEADDR (Àº)´Â, .Xr bind 2 È£Ãâ·Î ÁöÁ¤µÈ ÁÖ¼Ò¸¦ °ËÁõÇϴµ¥ »ç¿ëÇÏ´Â ±ÔÄ¢À¸·Î, ·ÎÄà ÁÖ¼ÒÀÇ ÀçÀÌ¿ëÀÌ °¡´ÉÇÑ °ÍÀ» ³ªÅ¸³À´Ï´Ù. .Dv SO_REUSEPORT (Àº)´Â, Æ÷Æ®¸¦ ¹ÙÀεå Çϱâ ÀüÀÇ º¹¼öÀÇ ÇÁ·Î¼¼½º°¡ ¸ðµÎ .Dv SO_REUSEPORT (À»)¸¦ ¼³Á¤ÇØ ÀÖ´Â °æ¿ì¿¡, º¹¼öÀÇ ÇÁ·Î¼¼½º¿¡ ÀÇÇÑ ¿ÏÀüÇÏ°Ô Áߺ¹ ÇÑ ¹ÙÀε尡 °¡´ÉÇÏ°Ô µÇµµ·Ï(µíÀÌ) ÇÕ´Ï´Ù. ÀÌ ¿É¼ÇÀº, ÇÁ·Î±×·¥ÀÇ º¹¼öÀÇ ÀνºÅϽº °¢°¢ÀÌ, ¹ÙÀÎµå µÈ Æ÷Æ®¸¦ Ç༱Áö·Î ÇÏ´Â UDP/IP ¸ÖƼ ij½ºÆ® ¶Ç´Â ºê·Îµåij½ºÆ®ÀÇ µ¥ÀÌÅÍ ±×·¥À» ¼ö½ÅÇÒ ¼ö ÀÖµµ·Ï(µíÀÌ) ÇÕ´Ï´Ù. .Dv SO_KEEPALIVE (Àº)´Â Á¢¼ÓµÈ ¼ÒÄϻ󿡼­ ¸Þ¼¼ÁöÀÇ ÁÖ±âÀûÀÎ ¼Û½ÅÀ» À¯È¿ÇÏ°Ô ÇÕ´Ï´Ù. Á¢¼ÓµÈ »ÓÀÌ ÀÌ·¯ÇÑ ¸Þ¼¼Áö¿¡ ÀÀ´äÇÒ ¼ö ¾ø´Â °æ¿ì´Â Á¢¼ÓÀÌ ÆÄ±«µÇ°í ÀÖ´Ù°í »ý°¢µÇ¾î ¼ÒÄÏÀ» »ç¿ëÇϰí ÀÖ´Â ÇÁ·Î¼¼½º´Â µ¥ÀÌÅ͸¦ ¼Û½ÅÇÏ·Á°í ÇÒ ¶§ .Dv SIGPIPE ½Ã±×³Î¿¡ ÀÇÇØ ÅëÁö¸¦ ¹Þ½À´Ï´Ù. .Dv SO_DONTROUTE (Àº)´Â ¹ß½Å ¸Þ¼¼Áö°¡ Ç¥ÁØÀÇ °æ·Î ¼³Á¤ ±â´ÉÀ» ¿ìȸµµ·Î ÇÒ Çʿ䰡 ÀÖ´Â °ÍÀ» ³ªÅ¸³À´Ï´Ù. ´ë½Å¿¡, ¸Þ¼¼Áö´Â, Ç༱Áö ÁÖ¼ÒÀÇ ³×Æ®¿öÅ© ºÎºÐ¿¡ µû¶ó ÇØ´çÇÏ´Â ³×Æ®¿öÅ© ÀÎÅÍÆäÀ̽º¿¡ Àü¼Û µË´Ï´Ù. .Pp .Dv SO_LINGER (Àº)´Â ¼Û½ÅµÇ¾î ÀÖÁö ¾ÊÀº ¸Þ¼¼Áö°¡ ¼ÒÄÏÀÇ ±â´Ù¸®´Â Çà·Ä¿¡ ÀÖ¾î, °Ô´Ù°¡ .Xr close 2 ÇÏÁö¸¸ ½ÇÇàµÉ ¶§¿¡ ÇàÇØÁö´Â óġ¸¦ Á¦¾îÇÕ´Ï´Ù. ¼ÒÄÏÀÌ µ¥ÀÌÅÍÀÇ ½Å·ÚÇÒ ¼ö ÀÖ´Â Àü´ÞÀ» È®¾àÇØ, °Ô´Ù°¡ .Dv SO_LINGER ÇÏÁö¸¸ ¼³Á¤µÇ¾î ÀÖ´Â °æ¿ì, µ¥ÀÌÅ͸¦ ¼Û½ÅÇÒ ¼ö ÀÖÀ» ¶§±îÁö ¶Ç´Â Á¤º¸¸¦ Àü´ÞÇÒ ¼ö ¾ø´Ù (¸µ°¡-ÀÎÅ͹ú·Î ºÒ¸®´Â ŸÀÓ ¾Æ¿ô ½Ã°£Àº, .Dv SO_LINGER ÇÏÁö¸¸ ¿ä±¸µÉ ¶§ .Fn setsockopt È£Ãâ³»¿¡¼­ ÃÊ´ÜÀ§·Î ÁöÁ¤µË´Ï´Ù)¿Í ÆÇÁ¤ÇÒ ¶§±îÁö, ½Ã½ºÅÛÀº ÇÁ·Î¼¼½º¸¦ .Xr close 2 À§¿¡¼­ ºí·Ï ÇÕ´Ï´Ù. .Dv SO_LINGER ÇÏÁö¸¸ ¹«È¿ »óÅ·Π.Xr close 2 ÇÏÁö¸¸ ±âµ¿µÇ¸é(ÀÚ), ½Ã½ºÅÛÀº, ÇÁ·Î¼¼½º°¡ °¡´ÉÇÑ ÇÑ ½Å¼ÓÈ÷ 󸮸¦ °è¼ÓÇÒ ¼ö ÀÖ´Â ¹æ¹ýÀ¸·Î Ŭ·Î¿ìÁî 󸮸¦ ½Ç½ÃÇÕ´Ï´Ù. .Pp ¿É¼Ç .Dv SO_BROADCAST (Àº)´Â, ¼ÒÄϻ󿡼­ ºê·Îµåij½ºÆ® µ¥ÀÌÅÍ ±×·¥À» ¼Û½ÅÇÏ´Â ÆÛ¹Ì¼ÇÀ» ¿ä±¸ÇÕ´Ï´Ù. ºê·Îµåij½ºÆ®´Â, ½Ã½ºÅÛÀÇ Ãʱ⠹öÁ¯¿¡¼­´Â Ư±Ç Á¶ÀÛÀ̾ú½À´Ï´Ù. ¹êµå¿ÜÀÇ µ¥ÀÌÅ͸¦ ¼­Æ÷Æ®ÇÏ´Â ÇÁ·ÎÅäÄÝ·Î, .Dv SO_OOBINLINE ¿É¼ÇÀº, ¹êµå¿ÜÀÇ µ¥ÀÌÅͰ¡ ¼ö½ÅµÈ Â÷·Ê·Î Åë»óÀÇ µ¥ÀÌÅÍ ÀÔ·Â ±â´Ù¸®´Â Çà·Ä¿¡ ¹èÄ¡µÇ´Â °ÍÀ» ¿ä±¸ÇÕ´Ï´Ù. ±×¸®°í, À̰ÍÀº .Dv MSG_OOB Ç÷¡±×¾øÀÌ .Xr recv 2 È£ÃâÇØ ¶Ç´Â .Xr read 2 È£Ãâ·Î ¾×¼¼½º ÇÒ ¼ö ÀÖ½À´Ï´Ù. Ç×»ó ÀÌ ¿É¼ÇÀÌ ¼³Á¤µÇ¾î ÀÖ´Â °Í°ú °°°Ô µ¿ÀÛÇÑ´Ù ÇÁ·ÎÅäÄݵµ ÀÖ½À´Ï´Ù. .Dv SO_SNDBUF (¿Í)°ú .Dv SO_RCVBUF (Àº)´Â, °¢°¢, Ãâ·Â ¹× ÀԷ¿뿡 ÇÒ´çÇÒ ¼ö ÀÖ´Â Åë»óÀÇ ¹öÆÛ »çÀÌÁ Á¶Á¤ÇÏ´Â ¿É¼ÇÀÔ´Ï´Ù. ¹öÆÛÀÇ »çÀÌÁî´Â, °íº¼·ý Á¢¼ÓÀ» À§Çؼ­(¶§¹®¿¡) Áõ°¡ÇÒ ¼ö°¡ ÀÖ°í, Âø½Å µ¥ÀÌÅÍÀÇ °¡´ÉÇÑ ¹é ·Î±×¸¦ Á¦ÇÑÇϱâ À§Çؼ­ °¨¼Ò½Ãų ¼öµµ ÀÖ½À´Ï´Ù. ½Ã½ºÅÛÀº ÀÌ·¯ÇÑ °ª¿¡ ´ëÇØ 1 °³ÀÇ Àý´ë ÃÖ´ëÄ¡¸¦ ¼³Á¤ÇÕ´Ï´Ù. ÀÌ ÃÖ´ëÄ¡´Â .Xr sysctl 3 MIB º¯¼ö .Dq Li kern.ipc.maxsockbuf ¿¡ ÀÇÇØ ¾×¼¼½º ÇÒ ¼ö ÀÖ½À´Ï´Ù. .Pp .Dv SO_SNDLOWAT (Àº)´Â Ãâ·Â Á¶ÀÛ¿¡ ÃÖ¼Ò Ä«¿îÆ®¸¦ ¼³Á¤ÇÏ´Â ¿É¼ÇÀÔ´Ï´Ù. ´ëºÎºÐÀÇ Ãâ·Â Á¶ÀÛÀº, ¼Û½Å¿ëÀÇ ÇÁ·ÎÅäÄÝ¿¡ µ¥ÀÌÅ͸¦ Àü´ÞÇØ, flow control¸¦ À§Çؼ­(¶§¹®¿¡) ºí·Ï Çϸ鼭 È£Ãâ¿¡ ÀÇÇØ ÁÖ¾îÁø ¸ðµç µ¥ÀÌÅ͸¦ ó¸®ÇÕ´Ï´Ù. ³íºê·ÏÅ· Ãâ·Â Á¶ÀÛÀº, ºí·Ï ¾øÀ½ÀÇ flow control¿¡ µû¶ó Çã¿ë µÇ´Â ÇѰè±îÁö µ¥ÀÌÅ͸¦ ó¸®ÇÕ´Ï´Ù¸¸, flow control°¡ ÃÖÀú ±âÁØÄ¡ ¶Ç´Â ¿ä±¸ ÀüüÀÇ ¾ðÁ¨°¡ ÀÛÀº (ºÐ)ÆíÀ» ó¸®ÇÏ´Â °ÍÀ» Çã¿ë ÇÏÁö ¾Ê´Â´Ù °æ¿ì´Â µ¥ÀÌÅ͸¦ ó¸®ÇÏÁö ¾Ê½À´Ï´Ù. ¼ÒÄÏ¿¡ÀÇ ±â·Ï ´É·ÂÀ» ½ÃÇèÇÑ´Ù .Xr select 2 Á¶ÀÛÀÌ ÁøÀ¸·Î µ¹¾Æ°¡´Â °ÍÀº, ÃÖÀú ±âÁØÄ¡¸¦ ó¸®ÇÒ ¼ö ÀÖ´Â °æ¿ì¸¸ÀÔ´Ï´Ù. .Dv SO_SNDLOWAT ÀÇ ±âº»°ªÀº ³×Æ®¿öÅ© È¿À²¼ºÀ» À§Çؼ­(¶§¹®¿¡) ÀûÀýÇÑ »çÀÌÁî (¸¹Àº °æ¿ì´Â 1024)·Î ¼³Á¤µË´Ï´Ù. .Dv SO_RCVLOWAT (Àº)´Â ÀÔ·Â Á¶ÀÛÀÇ ÃÖ¼Ò Ä«¿îÆ®¸¦ ¼³Á¤ÇÏ´Â ¿É¼ÇÀÔ´Ï´Ù. ÀϹÝÀûÀ¸·Î, ¼ö½Å È£ÃâÀº, ¾ó¸¶Àΰ¡ÀÇ (0 ÀÌ ¾Æ´Ï´Ù) µ¥ÀÌÅͰ¡ ¼ö½ÅµÉ ¶§±îÁö ºí·Ï ÇÏ°í ³ª¼­, ÀÌ¿ëÇÒ ¼ö ÀÖ´Â ¾ç ¶Ç´Â ¿ä±¸µÈ ¾çÀÇ ¾ðÁ¨°¡ ÀûÀº (ºÐ)Æí°ú ÇÔ²² µ¹¾Æ¿É´Ï´Ù. .Dv SO_RCVLOWAT ÀÇ ±âº»°ªÀº 1 ÀÔ´Ï´Ù. .Dv SO_RCVLOWAT ¿¡ Á» ´õ Å« °ªÀÌ ¼³Á¤µÇ¾î ÀÖ´Â °æ¿ì, ¼ö½Å È£ÃâÀÇ ºí·ÏÀº Åë»ó, ÃÖÀú ±âÁØÄ¡ ¶Ç´Â ¿ä±¸µÈ ¾çÀÇ ¾ðÁ¨°¡ ÀÛÀº °ÍÀÌ ¼ö½ÅµÉ ¶§±îÁö ´ë±âÇÕ´Ï´Ù. ¼ö½Å È£ÃâÀº, ¿¡·¯°¡ ¹ß»ýÇϰųª ½Ã±×³ÎÀÌ ÀâÈ÷°Å³ª ¶Ç´Â ¼ö½Å ±â´Ù¸®´Â Çà·Ä³»ÀÇ ´ÙÀ½ÀÇ µ¥ÀÌÅÍÀÇ Å¸ÀÔÀÌ µ¹·ÁÁÖ¾îÁø °Í°ú ´Ù¸¥ °æ¿ì´Â, ÃÖÀú ±âÁØÄ¡º¸´Ù ÀÛÀº °ªÀ¸·Îµµ µ¹¾Æ¿À´Â ÀÏÀÌ ÀÖ½À´Ï´Ù. .Pp .Dv SO_SNDTIMEO (Àº)´Â Ãâ·Â Á¶ÀÛ¿¡ ´ëÇØ ŸÀÓ ¾Æ¿ôÄ¡¸¦ ¼³Á¤ÇÏ´Â ¿É¼ÇÀÔ´Ï´Ù. À̰ÍÀº, Ãâ·Â Á¶ÀÛ ¿Ï·áÀÇ ´ë±â¸¦ Á¦ÇÑÇϱâ À§Çؼ­ »ç¿ëµÇ´Â Ãʼö, ¸¶ÀÌÅ©·Î ¼¼ÄÁµå¼ö¸¦ .Fa struct timeval ÆÄ¶ó¹ÌÅÍ·Î ÁöÁ¤ÇÕ´Ï´Ù. ¼Û½Å Á¶ÀÛÀÌ ÁöÁ¤µÈ ½Ã°£ ÀÌ»ó ºí·Ï µÇ¾úÀ» °æ¿ì, ºÎºÐÀûÀÎ Ä«¿îÆ®·Î µ¹¾Æ¿À´ÂÁö, ¶Ç´Â µ¥ÀÌÅͰ¡ ¼Û½ÅµÇ¾î ÀÖÁö ¾ÊÀº °æ¿ì´Â ¿¡·¯ .Er EWOULDBLOCK ±×¸®°í µ¹¾Æ¿É´Ï´Ù. ÇöÀçÀÇ ½ÇÀå¿¡¼­´Â, ÀÌ Å¸À̸Ӵ Ãß°¡ÀÇ °¢ µ¥ÀÌÅͰ¡ ÇÁ·ÎÅäÄÝ¿¡ Àü´ÞµÉ ¶§¸¶´Ù Àç±âµ¿µÇ¾î À̰ÍÀº »çÀÌÁî°¡ Ãâ·Â¿ëÀÇ ÃÖÀú ±âÁØÄ¡·ÎºÎÅÍ ÃÖ°í ±âÁØÄ¡ÀÇ ¹üÀ§¿¡ À̸£´Â Ãâ·Â ºÎºÐ¿¡ Àû¿ëµÇ´Â °ÍÀ» ÀǹÌÇÕ´Ï´Ù. .Dv SO_RCVTIMEO (Àº)´Â ÀÔ·Â Á¶ÀÛ¿¡ ´ëÇØ ŸÀÓ ¾Æ¿ôÄ¡¸¦ ¼³Á¤ÇÏ´Â ¿É¼ÇÀÔ´Ï´Ù. À̰ÍÀº ÀÔ·Â Á¶ÀÛ ¿Ï·áÀÇ ´ë±â¸¦ Á¦ÇÑÇϱâ À§Çؼ­ »ç¿ëµÇ´Â Ãʼö, ¸¶ÀÌÅ©·Î ¼¼ÄÁµå¼ö¸¦ .Fa struct timeval ÆÄ¶ó¹ÌÅÍ·Î ÁöÁ¤ÇÕ´Ï´Ù. ÇöÀçÀÇ ½ÇÀå¿¡¼­´Â, ÀÌ Å¸À̸Ӵ Ãß°¡ÀÇ µ¥ÀÌÅͰ¡ ÇÁ·ÎÅäÄÝ¿¡ ÀÇÇØ ¼ö½ÅµÉ ¶§¸¶´Ù Àç±âµ¿µÇ¹Ç·Î, Á¦ÇÑÀº ½ÇÁ¦·Î´Â ÈÞÁö ±â°£ÀÇ Å¸À̸Ӱ¡ µË´Ï´Ù. Ãß°¡ÀÇ µ¥ÀÌÅ͸¦ ¼ö½ÅÇÏ´Â ÀÏ ¾øÀÌ ¼ö½Å Á¶ÀÛÀÌ À̸¸Å­ÀÇ ½Ã°£¿¡ ´ëÇØ ºí·Ï µÇ¾úÀ» °æ¿ì, ªÀº Ä«¿îÆ®·Î µ¹¾Æ¿À´ÂÁö, ¶Ç´Â µ¥ÀÌÅͰ¡ ¼ö½ÅµÇ¾î ÀÖÁö ¾ÊÀº °æ¿ì´Â ¿¡·¯ .Er EWOULDBLOCK ±×¸®°í µ¹¾Æ¿É´Ï´Ù. .Pp .Dv SO_ACCEPTFILTER (Àº)´Â, ¼ÒÄÏ»ó¿¡ .Xr accept_filter 9 (À»)¸¦ µÓ´Ï´Ù. À̰Ϳ¡ ÀÇÇØ, ±â´Ù¸®°í Çϰí ÀÖ´Â ½ºÆ®¸² ¼ÒÄÏ¿¡ µé¾î ¿À´Â Á¢¼ÓÀÌ .Xr accept 2 ¿¡°Ô °Ç³×Áö±â Àü¿¡ ÇÊÅÍ µÇ°Ô µË´Ï´Ù. ¸¸¾àÀ» À§ÇØ ¹Ýº¹ÇÕ´Ï´Ù. ÇÊÅ͸¦ ¼ÒÄÏ»ó¿¡ ÀνºÅç Çϱâ Àü¿¡, ¼ÒÄÏ¿¡ ´ëÇØ¼­ .Xr listen 2 È£ÃâÇÒ Çʿ䰡 ÀÖ½À´Ï´Ù. ±×·¸°Ô ÇÏÁö ¾ÊÀ¸¸é .Fn setsockopt È£ÃâÀÌ ½ÇÆÐÇÕ´Ï´Ù. .Bd -literal struct accept_filter_arg { char af_name[16]; char af_arg[256-16]; }; .Ed .Pp .Fa optval ÇÏ .Fa struct accept_filter_arg (À»)¸¦ °¡¸®Å°Áö ¾ÊÀ¸¸é ¾ÈµË´Ï´Ù. ÀÌ ±¸Á¶Ã¼°¡ .Xr accept_filter 9 (À»)¸¦ ¼±ÅÃ, ¼³Á¤ÇÕ´Ï´Ù. .Fa af_name (Àº)´Â, ¾îÇø®ÄÉÀ̼ÇÀÌ ±â´Ù¸®°í ¼ÒÄÏ»ó¿¡ µÎ°í ½Í´Ù°í »ý°¢Çϰí ÀÖ´Ù ¼öÃë¿ë ÇÊÅÍÀÇ À̸§À¸·Î ¹¯Áö ¾ÊÀ¸¸é ¾ÈµË´Ï´Ù. .Fa af_arg (Àº)´Â ¿É¼ÇÀÇ ÆÄ¶ó¹ÌÅÍ·Î, .Fa af_name ±×¸®°í ÁöÁ¤µÈ ¼öÃë¿ë ÇÊÅÍ¿¡ °Ç³×ÁÙ ¼ö°¡ ÀÖ´Â °ÍÀÔ´Ï´Ù. À̰Ϳ¡ ÀÇÇØ, ¼ÒÄÏ¿¡ ³õ¿©Áú ¶§¿¡ »õ·Î¿î ¼³Á¤ ¿É¼ÇÀ» Á¦°øÇÕ´Ï´Ù. NULL ¸¦ .Fa optval ¾ÈÀ¸·Î °Ç³×ÁÖ¸é(ÀÚ), ÇÊÅͰ¡ »èÁ¦µË´Ï´Ù. .Pp ¸¶Áö¸·À¸·Î, .Dv SO_TYPE (¿Í)°ú .Dv SO_ERROR ÇÏ .Fn getsockopt ±×¸®°í¸¸ »ç¿ëµÇ´Â ¿É¼ÇÀÔ´Ï´Ù. .Dv SO_TYPE ±×·³ .Dv SOCK_STREAM (¿Í)°ú °°Àº ¼ÒÄÏÀÇ Å¸ÀÔÀÌ µ¹¾Æ°©´Ï´Ù. À̰ÍÀº ½ºÅ¸Æ® ¾÷½Ã¿¡ ¼ÒÄÏÀ» °è½ÂÇÏ´Â °Í °°Àº ¼­¹ö¿¡ Æí¸®ÇÕ´Ï´Ù. .Dv SO_ERROR (Àº)´Â ¼ÒÄϻ󿡼­ ¿¬±âÁßÀÇ ¿¡·¯¸¦ µ¹·ÁÁÖ¾î, ¿¡·¯ »óŸ¦ Ŭ¸®¾î ÇÕ´Ï´Ù. À̰ÍÀº Á¢¼ÓµÈ µ¥ÀÌÅÍ ±×·¥ ¼ÒÄÏ»óÀÇ ºñµ¿±âÀû ¿¡·¯¸¦ üũÇϰųª ±× ¿ÜÀÇ ºñµ¿±â ¿¡·¯¸¦ üũÇϴµ¥ »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù. .Sh ¹Ýȯ°ª .Rv -std .Sh ¿¡·¯ È£ÃâÀº ´ÙÀ½ÀÇ °æ¿ì¸¦ Á¦¿ÜÇØ Á¤»óÀûÀÔ´Ï´Ù. .Bl -tag -width Er .It Bq Er EBADF Àμö .Fa s ÇÏÁö¸¸ À¯È¿ÇÑ ±â¼úÀÚ°¡ ¾Æ´Õ´Ï´Ù. .It Bq Er ENOTSOCK Àμö .Fa s ÇÏÁö¸¸ ¼ÒÄÏÀº ¾Æ´Ï°í ÆÄÀÏÀÔ´Ï´Ù. .It Bq Er ENOPROTOOPT Áö½Ã¹ÞÀº ·¹º§·Î ¿É¼ÇÀº Á¸ÀçÇÏÁö ¾Ê½À´Ï´Ù. .It Bq Er EFAULT .Fa optval ÇÏÁö¸¸ °¡¸®Å°´Â ÁÖ¼Ò°¡ ÇÁ·Î¼¼½º address °ø°£ÀÇ À¯È¿ÇÑ ºÎºÐ¿¡ ¾ø½À´Ï´Ù. .Fn getsockopt ±×·³, .Fa optlen ÇÏÁö¸¸ ÇÁ·Î¼¼½º address °ø°£ÀÇ À¯È¿ÇÑ ºÎºÐÀÌ ¾Æ´Ñ °æ¿ìµµ, ÀÌ ¿¡·¯°¡ µ¹·ÁÁÖ¾îÁú °¡´É¼ºÀÌ ÀÖ½À´Ï´Ù. .It Bq Er EINVAL ±â´Ù¸®Áö ¾ÊÀº ¼ÒÄÏ¿¡ ´ëÇØ¼­ .Xr accept_filter 9 ÀÇ ÀνºÅçÀ» ½ÃµµÇß½À´Ï´Ù. .El .Sh °ü·Ã Ç׸ñ .Xr ioctl 2 , .Xr socket 2 , .Xr getprotoent 3 , .Xr sysctl 3 , .Xr protocols 5 , .Xr sysctl 8 , .Xr accept_filter 9 .Sh ¹ö±× ¼ÒÄÏ ¿É¼ÇÀÇ ¸î°³Àΰ¡´Â ½Ã½ºÅÛÀÇ ³·Àº ·¹º§·Î ó¸®µÉ Çʿ䰡 ÀÖ½À´Ï´Ù. .Sh ¿ª»ç .Fn getsockopt ½Ã½ºÅÛ ÄÝÀº .Bx 4.2 ±×¸®°í óÀ½ µîÀåÇß½À´Ï´Ù.