setsockopt
setsockopt ÇÔ¼ö´Â ¼ÒÄÏ ¿É¼ÇÀ» ¼³Á¤ÇÏ´Â ÇÔ¼öÀÔ´Ï´Ù.
int setsockopt (
SOCKET
s,
int
level,
int
optname,
const
char FAR * optval,
int
optlen
);
Parameters
s
[ÀÔ·Â]
´ë»ó ¼ÒÄÏÀÇ ±â¼úÀÚ(descriptor)¸¦ ¸í½ÃÇÕ´Ï´Ù.
level
[ÀÔ·Â]
¼ÒÄÏ ¿É¼Ç ·¹º§ÀÌ Á¤ÀÇ µÇ¸ç, SOL_SOCKET °ú IPPROTO_TCP Áß Çϳª°¡ µÉ ¼ö ÀÖ½À´Ï´Ù.
optname
[ÀÔ·Â]
¼ÂÆÃ ÇϱâÀ§ÇÑ ¼ÒÄÏ¿É¼Ç °ªÀÔ´Ï´Ù.
optval
[ÀÔ·Â]
°Ë»öµÈ ¿É¼ÇÀ» ÀúÀå ÇϱâÀ§ÇÑ µ¥ÀÌÅÍ ¹öÆÛ¸¦ Æ÷ÀÎÆ® ÇÕ´Ï´Ù.
optlen
[ÀÔ·Â]
optval
¸Å°³º¯¼ö ¹öÆÛÀÇ Å©±â
Remarks
setsockopt ÇÔ¼ö´Â ÁöÁ¤µÈ ¼ÒÄÏÀÇ ¿É¼ÇÀ» ƯÁ¤ÇÑ ÇüÅÂ(type), »óÅÂ(state)·Î °áÇÕÇϱâ À§Çؼ ÁöÁ¤ÇÑ ¼ÒÄÏ¿É¼Ç °ªÀ» ¼ÂÆÃÇÏ´Â ÇÔ¼öÀÔ´Ï´Ù. ºñ·Ï ¿©·¯ ÇÁ·ÎÅäÄÝ ·¹º§·ÎÀÇ ¼ÒÄÏ ¿É¼ÇÀÌ Á¸Àç ÇÒ ¼ø ÀÖ´Ù ÇÏ´õ¶óµµ, °¡Àå ¿ì¼±ÇÏ´Â ·¹º§ÀÌ Á¸ÀçÇÏ°Ô µË´Ï´Ù. ¿É¼ÇÀº ¼ÒÄÏ ¿¬»ê¿¡ ¿µÇâÀ» ¹ÌĨ´Ï´Ù. ¿¹¸¦µé¾î ¹ß¼ÛµÈ µ¥ÀÌÅÍ(OOB µ¥ÀÌÅ͸¦ ¿¹·Î µé ¼ö ÀÖ½À´Ï´Ù) ¸¦ ÀÏ¹Ý µ¥ÀÌÅÍ ½ºÆ®¸²À¸·Î ¼ö½ÅÇßÀ»¶§³ª, ¼ÒÄÏÀ¸·Î ºê·Îµåij½ºÆ®(broadcast) ¸Þ¼¼Áö¸¦ Àü¼ÛÇÒ¶§ ¿µÇâÀ» ¹ÌÄ¡°Ô µË´Ï´Ù.
ÀÌ ÇÔ¼ö¿¡¼ »ç¿ë ÇÒ ¼ö ÀÖ´Â µÎ°¡Áö ÇüÅÂÀÇ ¼ÒÄϿɼÇÀÌ ÀÖ½À´Ï´Ù. Ȱ¼ºÈ ¶Ç´Â ºñȰ¼ºÈ ½Ã۱â À§ÇÑ Boolean ¿É¼Ç°ú, Á¤¼öÇü(integer) ¶Ç´Â ±¸Á¶Ã¼¸¦ ¿ä±¸ÇÏ´Â ¿É¼ÇÀÌ ÀÖ½À´Ï´Ù. Boolean ¿É¼ÇÀ» Ȱ¼ºÈ Çϱâ À§Çؼ optval ¸Å°³º¯¼ö´Â 0ÀÌ ¾Æ´Ñ Á¤¼ö¸¦ Æ÷ÀÎÆ® Çϰí, ºñȰ¼ºÈ Çϱâ À§Çؼ 0À» Æ÷ÀÎÆ® ÇÕ´Ï´Ù. optlen ¸Å°³º¯¼ö´Â Boolean ¿É¼Ç¿¡ ´ëÇØ¼´Â sizeof(int)·Î ¼³Á¤ ÇØ¾ß¸¸ ÇÕ´Ï´Ù. ´Ù¸¥ ¿É¼Çµé¿¡ ´ëÇØ¼, optval ¸Å°³º¯¼ö´Â ¼³Á¤ÇϰíÀÚ ÇÏ´Â Á¤¼ö(integer)³ª ±¸Á¶Ã¼¸¦ ³Ñ°Ü¾ß Çϰí, optlen ¸Å°³º¯¼ö´Â Á¤¼ö(integer) ¶Ç´Â ±¸Á¶Ã¼ÀÇ ±æÀ̸¦ ³Ñ°Ü¾ß ÇÕ´Ï´Ù. ¾Æ·¡¿¡ setsockopt ÇÔ¼ö¿¡¼ »ç¿ë ÇÒ ¼ö ÀÖ´Â ¿É¼ÇµéÀ» °£´ÜÇÑ ¼³¸í°ú ÇÔ²² ³ª¿ ÇØ º¸¾Ò½À´Ï´Ù.
level = SOL_SOCKET
¿É¼Ç°ª(Value) |
µ¥ÀÌÅÍÇüÅÂ(Type) |
ÀǹÌ(Meaning) |
---|---|---|
SO_BROADCAST
|
BOOL |
¼ÒÄÏÀ¸·Î ºê·Îµåij½ºÆ®(broadcast) ¸Þ¼¼Áö¸¦ Àü¼Û ÇÒ ¼ö ÀÖµµ·Ï ÇÕ´Ï´Ù. |
SO_DEBUG |
BOOL |
µð¹ö±ë Á¤º¸¸¦ ·¹ÄÚµù ÇÕ´Ï´Ù. |
SO_DONTLINGER |
BOOL |
¼ÒÄÏÀ» Á¾·á(close)ÇÒ¶§ º¸³»ÁöÁö ¾ÊÀº µ¥ÀÌÅ͸¦ º¸³»±âÀ§Çؼ ºí·°Å· »óŰ¡ µÇÁö ¾Êµµ·Ï ÇÕ´Ï´Ù. ÀÌ ¿É¼ÇÀ» ¼ÂÆÃÇÏ´Â °ÍÀº LINGER ±¸Á¶Ã¼ÀÇ ¸â¹öÁß l_onoff¸¦ 0À¸·Î ¼ÂÆÃÇϰí SO_LINGER ¿É¼ÇÀ» ¼ÂÆÃ ÇßÀ»¶§¿Í °°Àº È¿·ÂÀ» ¹ßÈÖÇÕ´Ï´Ù. |
SO_DONTROUTE |
BOOL |
¶ó¿ìÆÃ ÇÏÁö ¾Ê°í, Á÷Á¢ ÀÎÅÍÆäÀ̽º·Î º¸³À´Ï´Ù. |
SO_GROUP_PRIORITY |
int |
Â÷ÈÄ¿¡ ¼ÒÄϱ׷ìÀ» »ç¿ëÇϱâÀ§ÇØ ¿¹¾à
µÇ¾îÀÖ½À´Ï´Ù. ¼ÒÄϱ׷ìÀÇ ÀϺκÐÀÎ ¼ÒÄÏÀ» ¸¸µé±âÀ§ÇØ °ü·ÃµÈ ¿ì¼±»çÇ×À»
¸í½ÃÇÕ´Ï´Ù. |
SO_KEEPALIVE |
BOOL |
Keepalives¸¦ Àü¼ÛÇÕ´Ï´Ù. |
SO_LINGER |
struct LINGER |
¾ÆÁ÷ Àü¼ÛµÇÁö ¾ÊÀº µ¥ÀÌÅͰ¡ ÀÖÀ» °æ¿ì ¼ÒÄÏÀ» Á¾·á(close)ÇÒ¶§ ´ë±âÇÕ´Ï´Ù. |
SO_OOBINLINE |
BOOL |
ÀÏ¹Ý µ¥ÀÌÅÍ ½ºÆ®¸²(normal data stream)À¸·Î out-of-band µ¥ÀÌÅ͸¦ ¼ö½ÅÇÕ´Ï´Ù. |
SO_RCVBUF |
int |
µ¥ÀÌÅ͸¦ ¼ö½ÅÇϱâ À§ÇÑ ÃÑ ¹öÆÛ°ø°£À» ¸í½ÃÇÕ´Ï´Ù. ¿ä³ðÀº SO_MAX_MSG_SIZE ³ª, TCP WindowÀÇ Å©±â¿Í »ó°üÀÌ ¾ø½À´Ï´Ù. |
SO_REUSEADDR |
BOOL |
ÀÌ¹Ì »ç¿ëµÇ°í ÀÖ´Â ¾îµå·¹½º¸¦ ¹ÙÀεå ÇÒ ¼ö ÀÖµµ·Ï ÇÕ´Ï´Ù. |
SO_SNDBUF |
int |
µ¥ÀÌÅ͸¦ Àü¼ÛÇϱâ À§ÇÑ ÃÑ ¹öÆÛ°ø°£À» ¸í½ÃÇÕ´Ï´Ù. ¿ä³ðÀº SO_MAX_MSG_SIZE ³ª, TCP WindowÀÇ Å©±â¿Í´Â »ó°üÀÌ ¾ø½À´Ï´Ù. |
level = IPPROTO_TCP
TCP_NODELAY |
BOOL |
Àü¼ÛÇÕº´(send coalescing)À» À§ÇØ Nagle ¾Ë°í¸®ÁòÀ» ºñ Ȱ¼ºÈ ÇÕ´Ï´Ù. |
Return Values
¿¡·¯°¡ ¹ß»ýÇÏÁö ¾ÊÀ¸¸é, setsockopt ÇÔ¼ö´Â 0À» ¹ÝȯÇÕ´Ï´Ù. ¿¡·¯°¡ ¹ß»ýÇϸé, SOCKET_ERRORÀ» ¹ÝȯÇϸé WSAGetLastError ÇÔ¼ö¸¦ ÀÌ¿ëÇØ¼ ƯÁ¤ ¿¡·¯ Äڵ带 ¾ò¾î³¾ ¼ö ÀÖ½À´Ï´Ù.
WSANOTINITIALISED |
ÀÌ ÇÔ¼ö¸¦ »ç¿ëÇϱâ Àü¿¡ ¼º°øÀûÀÎ WSAStartup ÇÔ¼öÀÇ È£ÃâÀÌ ¾ø¾ú½À´Ï´Ù. |
WSAENETDOWN | ³×Æ®¿÷ ¼ºê ½Ã½ºÅÛ¿¡ ¿¡·¯°¡ ¹ß»ýÇß½À´Ï´Ù. |
WSAEFAULT |
optval ¶Ç´Â optlen ¸Å°³º¯¼ö ÁßÀÇ Çϳª°¡ ¿Ã¹Ù¸£Áö ¾Ê°Å³ª optlen ¸Å°³º¯¼öÀÇ °ªÀÌ ³Ê¹« ÀÛ½À´Ï´Ù. |
WSAEINPROGRESS |
ºí·°Å· À©¼Ó v1.1 ÀÌ ÇöÀç ÁøÇà ÁßÀ̰ųª, ¼ºñ½º ÇÁ·Î¹ÙÀÌ´õ°¡ Äݹé ÇÔ¼ö¸¦ ¿©ÀüÈ÷ ó¸®Çϰí ÀÖ½À´Ï´Ù. |
WSAEINVAL |
level ¸Å°³º¯¼ö°¡ À߸øµÆ°Å³ª, ¾Ë ¼ö ¾ø´Â °ª ÀÔ´Ï´Ù. |
WSAENETRESET |
SO_KEEPALIVE°¡ ¼³Á¤ µÇ¾úÀ»¶§, Á¢¼ÓÀÌ Å¸ÀԾƿô µÇ¾ú½À´Ï´Ù. |
WSAENOPROTOOPT |
¾Ë ¼ö ¾ø´Â ¿É¼ÇÀ̰ųª, Áö¿øÁöÁö ¾Ê´Â ¿É¼ÇÀ» »ç¿ë Çß½À´Ï´Ù. |
WSAENOTCONN |
SO_KEEPALIVE°¡ ¼³Á¤ µÇ¾úÀ»¶§, Á¢¼ÓÀÌ ¸®¼Â µÇ¾ú½À´Ï´Ù. |
WSAENOTSOCK |
±â¼úÀÚ(descriptor)°¡ ¼ÒÄÏ ±â¼úÀÚ°¡ ¾Æ´Õ´Ï´Ù. |
QuickInfo
Windows NT : »ç¿ë°¡´É
Windows :
»ç¿ë°¡´É
Windows CE : ¹öÁ¯ 1.0 ±×¸®°í ±×ÀÌÈÄÀÇ ¹öÁ¯¿¡¼ »ç¿ë°¡´É
Header
:
Win16/32
: winsock.h
Win32-II
: winsock2.h
Import Library :
Win16 : winsock.lib
Win32
: wsock32.lib
Win32-II
: ws2_32.lib
overview, bind, getsockopt, ioctlsocket, socket, WSAAsyncSelect, WSAEventSelect