ÃÑ ÆäÀÌÁö ¼ö : 3224
![]()
|
Facebook Joinc ±×·ì
Joinc QA »çÀÌÆ®
![]()
Tweet
joinc´Â Firefox¿Í chrome¿¡¼ Å×½ºÆ® Çß½À´Ï´Ù. IE¿¡¼´Â Å×À̺íÀÌ ±úÁö°Å³ª À̹ÌÁö°¡ º¸ÀÌÁö ¾ÊÀ» ¼ö ÀÖ½À´Ï´Ù. ƯÈ÷ ±¸±Û DocsÀ̹ÌÁöÀÇ °æ¿ì ¿¢¹Úó¸®µÉ ¼ö ÀÖ½À´Ï´Ù. WSASend
¿¬°á ¼ÒÄÏÀ¸·Î µ¥ÀÌÅ͸¦ Àü¼ÛÇÑ´Ù. int WSASend( __in SOCKET s, __in LPWSABUF lpBuffers, __in DWORD dwBufferCount, __out LPDWORD lpNumberOfBytesSent, __in DWORD dwFlags, __in LPWSAOVERLAPPED lpOverlapped, __in LPWSAOVERLAPPED_COMPLETION_ROUTINE lpCompletionRoutine ); ¸Å°³ º¯¼ö
¹Ýȯ °ª
µ¥ÀÌÅÍ Àü¼ÛÀ» ¿Ï·áÇß´Ù¸é 0À» ¹ÝȯÇÑ´Ù. ÀÌ °æ¿ì ¿Ï·á ·çƾÀº È£Ãâ ¾²·¹µå°¡ ¹ÝÀÀÇÒ ¼ö ÀÖ´Â »óÅ·ΠȣÃâÇϱâ À§ÇÑ Áغñ¸¦ °®Ãß¾ú´Ù°í º¼ ¼ö ÀÖ´Ù. ½ÇÆÐÇÒ °æ¿ì SOCKET_ERROR¸¦ ¹ÝȯÇÑ´Ù. ¿¡·¯ ÄÚµå´Â WSAGetLastError ÇÔ¼ö·Î °¡Á®¿Ã ¼ö ÀÖ´Ù. ¿¡·¯ Äڵ尡 WSA_IO_PENDINGÀ̸é Áßø ¿¬»êÀ» À§ÇÑ ÃʱâÈ ÀÛ¾÷ÀÌ ¼º°øÀûÀ¸·Î ÁøÇà µÇ¾úÀ¸¸ç, ¿Ï·á¿¡ ´ëÇÑ ÃøÁ¤Àº ³ªÁß¿¡ ÀÌ·ç¾îÁú °ÍÀÓÀ» ÀǹÌÇÑ´Ù.
¼³¸í
WSASend ÇÔ¼ö´Â sendÇÔ¼öÀÇ È®Àå ÇÔ¼ö·Î sendÀÇ ±â´ÉÀ» ¸ðµÎ Áö¿øÇϸç, ¾Æ·¡ÀÇ ±â´ÉÀÌ Ãß°¡µÇ¾î ÀÖ´Ù.
socket ÇÔ¼ö·Î ¸¸µé¾îÁø ¼ÒÄÏÀº ±âº»ÀûÀ¸·Î Áßø Ư¼ºÀ» °¡Áö°í ÀÖ´Ù. WSASocket ÇÔ¼ö·Î ¼ÒÄÏÀ» ¸¸µç´Ù¸é WSA_FLAG_OVERLAPPEDºñÆ®¸¦ ¼³Á¤ÇØ¾ß ÇÑ´Ù. ¼ÒÄÏÀÌ Áßø Ư¼ºÀ» °¡Áö¸é WSASend´Â Áßø ÀÔÃâ·Â ¿¬»êÀ» ¼öÇàÇÑ´Ù. ¸¸¾à À̶§ lpOverlapped ¿Í lpCompletionRoutine°¡ NULL À̶ó¸é Áßø ÀÔÃâ·ÂÀº ¹«½ÃµÇ°í sendÇÔ¼ö¿Í µ¿ÀÏÇÏ°Ô ÀÛµ¿ÇÑ´Ù.
ºñ Áßø ¼ÒÄÏ¿¡¼ lpOverlapped¿Í lpCompletionRoutine´Â ¹«½ÃµÇ¸ç ºÀ¼â sendÇÔ¼ö¿Í µ¿ÀÏÇÏ°Ô ÀÛµ¿ÇÑ´Ù. dwFlagsÀÇ »ç¿ë
dwFlags´Â ¼ÒÄÏÀÇ ÀÛµ¿ ¹æ½ÄÀ» °áÁ¤Çϱâ À§Çؼ »ç¿ëÇÑ´Ù.
Áßø ÀÔÃâ·Â
¸¸¾à Áßø ¿¬»êÀÌ ¹Ù·Î ¿Ï·áµÇ¸é WSASend ÇÔ¼ö´Â 0À» ¹ÝȯÇϰí Àü¼ÛÇÑ µ¥ÀÌÅÍÀÇ ¹ÙÀÌÆ® Å©±â¸¦ lpNumberOfBytesSend °ªÀ¸·Î ¼³Á¤ÇÑ´Ù. ¸¸¾à Áßø ¿¬»êÀÌ ¼º°øÀûÀ¸·Î ÃʱâÈ µÇ°í ¾ÆÁ÷ ¿Ï·áµÇÁö ¾Ê¾Ò´Ù¸é, WSASend´Â SOCKET_ERROR¸¦ ¹ÝȯÇÑ´Ù. Áßø ¿¬»êÀÌ ³ªÁß¿¡ ÀÌ·ç¾îÁú °ÍÀ̶ó´Â °ÍÀº WSA_IO_PENDING¿¡·¯ ÄÚµå·Î È®ÀÎÇÒ ¼ö ÀÖ´Ù. ÀÌ °æ¿ì lpNumberOfBytesSend °ªÀº ¼öÁ¤µÇÁö ¾Ê´Â´Ù.
WSASend ÇÔ¼ö´Â ÀÌÀü¿¡ È£ÃâÇÑ WSARecv, WSARecvFrom, WSASend, WSASendToÇÔ¼öÀÇ ¿Ï·á ÇÔ¼ö¿¡¼ È£ÃâÇÒ ¼ö ÀÖ´Ù.
¸¸¾à ¿©·¯ °³ÀÇ ÀÔÃâ·ÂÀÌ µ¿½Ã¿¡ ÀÏ¾î³ ´Ù¸é, °¢°¢ÀÇ ¿¬»êÀº ¼·Î ´Ù¸¥ WSAOVERLAPPED ±¸Á¶Ã¼¸¦ ÂüÁ¶ÇØ¾ß ÇÑ´Ù.
¿Ï·á ·çƾÀº À©µµ ÆÄÀÏ ÀÔÃâ·ÂÀÇ ¿Ï·á ·çƾ°ú °°Àº ±ÔÄ¢À» µû¸¥´Ù. ¿Ï·á ·çƾÀº ½º·¹µå°¡ alertable »óŰ¡ µÇÁö ¾ÊÀ» ¶§±îÁö ´ë±âÇÏ°Ô µÈ´Ù.
¿Ï·á ·çƾÀÇ ÇÁ·ÎÅä ŸÀÔÀº ´ÙÀ½°ú °°´Ù.
void CALLBACK CompletionROUTINE( IN DWORD dwError, IN DWORD cbTransferred, IN LPWSAOVERLAPPED lpOverlapped, IN DWORD dwFlags ); |
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
º¸³½ Æ®·¢¹é Á¤º¸ RayÀÇ NetWorkProgramming :: IOCP Story No2 2010-04-08 11:09:00 Network Programming for Microsoft Windows - À©¼Ó¼Ò°³ send/receive 2010-04-08 11:10:00 a71045851´ÔÀÇ ºí·Î±× :: WSASend 2010-04-08 11:13:00 |
|
EmailÀ» ±âÀÔÇϸé, ´ñ±ÛÀÌ ¸ÞÀÏ·Î Àü´ÞµË´Ï´Ù. |
|