WSADuplicateSocket
WSADuplicateSocket ÇÔ¼ö´Â °øÀ¯¼ÒÄÏ¿¡ ´ëÇÑ »õ·Î¿î ¼ÒÄÏ ±â¼úÀÚ¸¦ »ý¼ºÇϴµ¥ »ç¿ëµÉ ¼ö ÀÖ´Â WSAPROTOCOL_INFO ±¸Á¶Ã¼¸¦ ¹ÝȯÇÏ´Â ÇÔ¼ö ÀÔ´Ï´Ù.
int WSADuplicateSocket (
SOCKET s,
DWORD dwProcessId,
LPWSAPROTOCOL_INFO lpProtocolInfo
);
Parameters
s
[ÀÔ·Â] ·ÎÄüÒÄÏÀ» ±¸ºÐ¢´Â ±â¼úÀÚ
dwProcessId
[ÀÔ·Â] º¹Á¦µÈ ¼ÒÄÏÀÌ »ç¿ëµÉ
Ÿ°Ù ÇÁ·Î¼¼½ºÀÇ ÇÁ·Î¼¼½º ¾ÆÀ̵ð
lpProtocolInfo
[Ãâ·Â] WSAPROTOCOL_INFO
±¸Á¶Ã¼¸¦ ´ã±âÀ§ÇØ ÃæºÐÇÑ Å©±â¸¦ °¡Áø Ŭ¶óÀÌ¾ðÆ®¿¡¼ ÇÒ´çµÇ ¹öÆÛÀÇ Æ÷ÀÎÅÍÀÔ´Ï´Ù.
¼ºñ½º ÇÁ·Î¹ÙÀÌ´õ´Â ÀÌ ¹öÆÛ¿¡ ÇÁ·ÎÅäÄÝ Á¤º¸¸¦ Ä«ÇÇÇÕ´Ï´Ù.
¿ëÁøÀÌ ¹Ùº¸´ç..³Í ÁøÂ¥·ç ¹Ùº¸¾ç.
Remarks
WSADuplicateSocket ÇÔ¼ö´Â ÇÁ·Î¼¼½º °£¿¡ ¼ÒÄÏÀ» °øÀ¯Çϴµ¥ »ç¿ëµÇ´Â ÇÔ¼öÀÔ´Ï´Ù. ¿øº» ÇÁ·Î¼¼½º´Â WSADuplicateSocket ÇÔ¼ö¸¦ È£ÃâÇØ¼ Ưº°ÇÑ WSAPROTOCOL_INFO ±¸Á¶Ã¼¸¦ ¾ò¾î³À´Ï´Ù. ÀÌ ±¸Á¶Ã¼´Â ¸ñÀûÁö ÇÁ·Î¼¼½º·Î ÀÌ ±¸Á¶Ã¼ÀÇ ³»¿ëÀ» ³Ñ±â±â À§ÇØ ÇÁ·Î¼¼½º »óÈ£°£ÀÇ Åë½Å(IPC) ¸ÅÄ¿´ÏÁòÀ» »ç¿ëÇÕ´Ï´Ù. ±¸Á¶Ã¼ÀÇ ³»¿ëÀ» ¹ÞÀº ÇÁ·Î¼¼½º´Â WSASocket ÇÔ¼ö¸¦ »ç¿ëÇÏ¿© ¼ÒÄÏÀ» º¹Á¦ÇϱâÀ§ÇØ ¼ÒÄÏ ±â¼úÀÚ¸¦ ¾ò¾î³À´Ï´Ù. ÀÌ WSAPROTOCOL_INFO ±¸Á¶Ã¼´Â Ÿ°Ù ÇÁ·Î¼¼½º¿¡¼ ´Ü Çѹø¸¸ »ç¿ëµÉ ¼ö ÀÖ½À´Ï´Ù.
¼ÒÄÏÀº ÇÑ ÇÁ·Î¼¼½º ³»¿¡¼ÀÇ ¾²·¹µå »çÀÌ¿¡¼ WSADuplicateSocket ÇÔ¼ö¸¦ »ç¿ëÇÏÁö ¾Ê°í °øÀ¯ ÇÒ ¼ö ÀÖ½À´Ï´Ù. ¿Ö³ÄÇϸé, ¼ÒÄÏ ±â¼úÀÚ °ªÀº ¸ðµç ¾²·¹µå ³»¿¡¼ ÀÎ½ÄµÉ ¼ö ÀÖ´Â ¿Ã¹Ù¸¥ °ªÀ̱⠶§¹®ÀÔ´Ï´Ù.
´Ù¸¥ ÇÁ·Î¼¼½º°£¿¡ °øÀ¯µÈ ¼ÒÄÏÀ» ¸¸µé°í, Çڵ鸵 ÇÏ´Â ½Ã³ª¸®¿À¸¦ ¾Æ·¡¿¡ ¿¹·Î µé¾î º¸¾Ò½À´Ï´Ù.
Source Process | IPC | Destination Process |
---|---|---|
1) WSASocket, WSAConnect ÇÔ¼ö È£Ãâ | ||
2) ¼ÒÄÏÀ» º¹Á¦ÇÒ ´ë»ó ÇÁ·Î¼¼½ºÀÇ ¾ÆÀ̵𸦠¿ä±¸ÇÔ | ¡æ | |
3) ÇÁ·Î¼¼½º ¾ÆÀ̵ð ¿ä±¸¸¦ ¹Þ°í, ÀÌ¿¡ ÀÀ´äÇÔ. | ||
4) ÇÁ·Î¼¼½º ¾ÆÀ̵𸦠¾ò¾î³¿ | ¡ç | |
5) WSADuplicateSocket
ÇÔ¼ö¸¦ È£ÃâÇØ¼ WSAPROTOCOL_INFO ±¸Á¶Ã¼¸¦ ¾ò¾î³À´Ï´Ù. |
||
6) ´ë»ó ÇÁ·Î¼¼½º·Î
WSAPROTOCOL_INFO
±¸Á¶Ã¼ÀÇ ³»¿ëÀ» º¸³À´Ï´Ù. |
||
¡æ | 7) WSAPROTOCOL_INFO ±¸Á¶Ã¼ÀÇ ³»¿ëÀ» ¹Þ½À´Ï´Ù. | |
8) WSASocket ÇÔ¼ö¸¦ È£ÃâÇØ¼ °øÀ¯¼ÒÄÏÀÇ ±â¼úÀÚ¸¦ »ý¼ºÇÕ´Ï´Ù. | ||
10) closesocket | 9) µ¥ÀÌÅÍ Ã³¸®¿¡ °øÀ¯¼ÒÄÏÀ» »ç¿ëÇÕ´Ï´Ù. |
°øÀ¯¼ÒÄÏÀ» °¡¸®Å°´Â ±â¼úÀÚ´Â I/O¿¡ ´ëÇØ¼ µ¶¸³ÀûÀ¸·Î »ç¿ëµÉ ¼ö ÀÖ½À´Ï´Ù. ÇÏÁö¸¸, À©µµÁî ¼ÒÄÏ ÀÎÅÍÆäÀ̽º´Â ƯÁ¤ÇÑ Å¸ÀÔÀÇ Á¢±Ù¿¡ ´ëÇØ¼´Â ±¸ÇöµÇÁö ¾ÊÀº Á¡µµ ÀÖ½À´Ï´Ù. °øÀ¯¼ÒÄÏÀº ÀϹÝÀûÀ¸·Î °øÀ¯¼ÒÄÏÀ» »ç¿ëÇÒ¶§, »ý¼º, Á¢¼ÓÀ» ÇϳªÀÇ ÇÁ·Î¼¼½º¿¡¼ ´ã´çÇϰí, µ¥ÀÌÅÍÀÇ Àü¼Û/¼ö½Å ºÎºÐÀº ´Ù¸¥ ÇÁ·Î¼¼½º¿¡¼ ó¸®ÇÏ´Â ÇüŰ¡ µË´Ï´Ù.
Return Values
¿¡·¯°¡ ¹ß»ýÇÏÁö ¾ÊÀ¸¸é, WSADuplicateSocket ÇÔ¼ö´Â 0À» ¹Ýȯ ÇÕ´Ï´Ù. ¿¡·¯°¡ ¹ß»ýÇÑ °æ¿ì´Â SOCKET_ERROR¸¦ ¹ÝȯÇϰí, WSAGetLastError ÇÔ¼ö·Î ƯÁ¤ÇÑ ¿¡·¯Äڵ带 ¾ò¾î³¾ ¼ö ÀÖ½À´Ï´Ù.
Error Codes
WSANOTINITIALISED | ÀÌ ÇÔ¼ö¸¦ »ç¿ëÇϱâ ÀÌÀü¿¡ WSAStartup ÇÔ¼ö¸¦ ¼º°øÀûÀ¸·Î È£ÃâÇØ¾ß ÇÕ´Ï´Ù. |
WSAENETDOWN | ³×Æ®¿÷ ¼ºê ½Ã½ºÅÛ¿¡ ¿¡·¯°¡ ¹ß»ýÇß½À´Ï´Ù. |
WSAEINVAL | ÁöÁ¤ÇÑ ¸Å°³º¯¼öÁß Çϳª°¡ À߸øµÈ °ªÀ» ³Ñ°å½À´Ï´Ù. |
WSAEINPROGRESS | ºí·°Å· À©¼Ó v1.1 ÀÌ WSACancelBlockingCall ÇÔ¼ö¿¡¼ Ãë¼ÒµÇ¾ú½À´Ï´Ù |
WSAEMFILE | »ç¿ë°¡´ÉÇÑ ¼ÒÄϱâ¼úÀÚ°¡ ´õ ÀÌ»ó ¾ø½À´Ï´Ù. |
WSAENOBUFS | »ç¿ë°¡´ÉÇÑ ¹öÆÛ°¡ ¾ø¾î¼, ¼ÒÄÏÀ» »ý¼º ÇÒ ¼ö ¾ø½À´Ï´Ù. |
WSAENOTSOCK | ±â¼úÀÚ°¡ ¼ÒÄÏÀÌ ¾Æ´Õ´Ï´Ù. |
WSAEFAULT | lpProtocolInfo ¸Å°³º¯¼ö°¡ Á¦´ë·Î ÇÒ´çµÈ ¸Þ¸ð¸® ¾îµå·¹½º¸¦ °¡Áö°í ÀÖÁö ¾Ê½À´Ï´Ù. |
QuickInfo
Windows NT : »ç¿ë°¡´É
Windows :
»ç¿ë°¡´É
Windows CE : Áö¿øµÇÁö ¾ÊÀ½
Header
:
Win16/32
: winsock.h
Win32-II
: winsock2.h
Import Library :
Win16 : winsock.lib
Win32
: wsock32.lib
Win32-II
: ws2_32.lib