listen

ëªì¹
     listen — ìì¼ìì ì ìì ë¦¬ì¨ íë¤

íë¡ê·¸ë¨ ë¼ì´ë¸ë¬ë¦¬
     Standard C Library (libc, -lc)

ìì
     <sys/types.h> <sys/socket.h> int listen(int s, int backlog)

í´ì¤
     socket(2) ê·¸ë¦¬ê³  ìµì´ë¡ ìì¼ì´ ìì±ëì´ ì°©ì  ì ìì ë°ìë¤ì¼ ìì¬ ë° ì°©ì
     ì ìì©ì 기ë¤ë¦¬ë íë ¬ íê³ê° listen() ê·¸ë¦¬ê³  ì§ì ë í, ì ìì´ accept(2)
     ê·¸ë¦¬ê³  ë°ìë¤ì¬ì§ëë¤.  listen() í¸ì¶ì, íìì´ SOCK_STREAM ëë
     SOCK_SEQPACKET ì ìì¼ìë§ ì ì©ë©ëë¤.

     backlog íë¼ë¯¸í°ë, ì°ê¸°ì¤ì ì ìì 기ë¤ë¦¬ë íë ¬ì ë릴 ëì ìµëì¥ì ì ìí©ëë¤.
     기ë¤ë¦¬ë íë ¬ì´ ë§ë°° ëì ì ì ìêµ¬ê° ëì°©íë©´(ì), í´ë¼ì´ì¸í¸ë
     ECONNREFUSED (ì)를 ëíë´ë ìë¬ë¥¼ ìì í  ê°ë¥ì±ì´ ììµëë¤.  TCP ì ê²½ì°ë,
     ì ìì ìë¤ë¬¼ê³  ë¨ì´ë¨ë ¤ì§ëë¤.

     FreeBSD 4.5 ì´ì ì syncache ê° ëìë  ëê¹ì§ë, backlog íë¼ë¯¸í°ë ë¶ìì í ì ìì
     기ë¤ë¦¬ë íë ¬ì 길ì´ë ì ìíê³  ìììµëë¤.  ì´ ê¸°ë¤ë¦¬ë íë ¬ìë, TCP ì 3
     ì¨ì´íëìí¬ë¥¼ ìë£ìí¬ ì ìëë¡ ì²ë¦¬ì¤ì TCP ìì¼ì´ ë³´ê´ ì ì§ëê³  ììµëë¤.
     ì´ë¬í ë¶ìì í ì ìì, íì¬ ëª¨ë syncache ì ë³´ê´ ì ì§ëì´ ì´ê²ì 기ë¤ë¦¬ë
     íë ¬ì 길ì´ì ìí¥ì ë°ì§ ììµëë¤.  backlog ê°ì ë리ë ê²ì¼ë¡ ìë¹ì¤ ë¶ë¥
     공격ì ëì²í  íìë, ì´ë¯¸ ììµëë¤.

     sysctl(3) MIB ë³ì “kern.ipc.somaxconn” í backlog ì íë ì íì ì§ì í©ëë¤.
     kern.ipc.somaxconn ë³´ë¤ í° ê°, ëë 0 ë³´ë¤ ìì ê°ì´ ì§ì ëì´ ìë ê²½ì°,
     backlog ì ì§ì ì 무ìëì´ kern.ipc.somaxconn ì ê°ì¼ë¡ ë©ëë¤.

ACCEPT íí°ìì ìí¸ìì©
     ìì¼ì ëí´ì accept íí°ë¥¼ ì¬ì©íë©´(ì), ì ìì ì¸ ê²ì accept íí°ì 기ì¤ì ìì§
     í©ì¹íì§ ìë ìì¼ì ë³´ê´ ì ì§í기 ìí ì  2 ì 기ë¤ë¦¬ë íë ¬ì´ ì¬ì©ë©ëë¤.  íë²
     기ì¤ì í©ì¹íë©´, ì´ë¬í ìì¼ì ì ì ìë£ì ì 기ë¤ë¦¬ë íë ¬ì ì´ëëì´ accept()ì
     ëìì´ ë©ëë¤.  ì  2 ì 기ë¤ë¦¬ë íë ¬ì´ ë§ë°° ëì ì ê· ì ìì´ ëì°©íë©´(ì),
     accept íí°ì 기ì¤ì ìì§ í©ì¹íì§ ìë ìµê³ ì ìì¼ì´ ì¢ë£ë©ëë¤.

     ì´ ì  2 ì 기ë¤ë¦¬ë íë ¬ì, ì  1 ì listen 기ë¤ë¦¬ë íë ¬ê³¼ ê°ì´, backlog
     íë¼ë¯¸í°ì ë°ë¼ í¬ê¸°ê° ë°ëëë¤.

ë°íê°
     The listen() function returns the value 0 if successful; otherwise the
     value -1 is returned and the global variable errno is set to indicate the
     error.

ìë¬
     listen() (ì)ë ë¤ìì ê²½ì°ì ì²ë¦¬ë¥¼ ì¤í¨í©ëë¤.

     [EBADF]            ì¸ì s íì§ë§ ì í¨í 기ì ìê° ìëëë¤.

     [ENOTSOCK]         ì¸ì s íì§ë§ ìì¼ì´ ìëëë¤.

     [EOPNOTSUPP]       ìì¼ì´, listen() (ì)를 ìí¬í¸íë íìì´ ìëëë¤.

ê´ë ¨ í목
     accept(2), accept_filter(9), connect(2), socket(2), sysctl(3), sysctl(8)

ìì¬
     listen() í¨ìë 4.2BSD ê·¸ë¦¬ê³  ë±ì¥íìµëë¤.  ì¤íìì ìµë backlog (ì)를
     ì¤ì í  ì ìë 기ë¥, ë° íì© í  ì ìë ìµëì¹ë¥¼ ì§ì íë ê²½ì°ì ë¶ì backlog
     (ì)를 ì¬ì©íë 기ë¥ì FreeBSD 2.2 ê·¸ë¦¬ê³  ë±ì¥íìµëë¤.