ÃÑ ÆäÀÌÁö ¼ö : 3224
![]()
|
Facebook Joinc ±×·ì
Joinc QA »çÀÌÆ®
![]()
Tweet
joinc´Â Firefox¿Í chrome¿¡¼ Å×½ºÆ® Çß½À´Ï´Ù. IE¿¡¼´Â Å×À̺íÀÌ ±úÁö°Å³ª À̹ÌÁö°¡ º¸ÀÌÁö ¾ÊÀ» ¼ö ÀÖ½À´Ï´Ù. ƯÈ÷ ±¸±Û DocsÀ̹ÌÁöÀÇ °æ¿ì ¿¢¹Úó¸®µÉ ¼ö ÀÖ½À´Ï´Ù. Out-Of-Band
Out Of Band´Â TCPÅë½Å¿¡¼ ¾²ÀδÙ. Out Of Band´Â °«±æÀ» ÀǹÌÇϴµ¥, TCP¿¡¼´Â ±ä±ÞÇÑ µ¥ÀÌÅÍÀÇ Åë½ÅÀ» À§Çؼ »ç¿ëÇÑ´Ù. OOB¶ó°í ÁÙ¿©¼ ºÎ¸¥´Ù.
TCP¿¡¼´Â URGÇÊµå ¸¦ 1·Î ¼³Á¤ÇÏ´Â °ÍÀ¸·Î OOBµ¥ÀÌÅÍÀÓÀ» ¸í½ÃÇÑ´Ù. URG´Â URGENT¸¦ ÀǹÌÇÑ´Ù. TCP Çì´õ Á¤º¸´Â TCP Çì´õ ÀÚ¼¼È÷ º¸±â ¹®¼¸¦ Âü°íÇϱ⠹ٶõ´Ù.
OOB µ¥ÀÌÅͶó°í ÇØ¼, ´Ù¸¥ ÆÐŶ¿¡ ¿ì¼±Çؼ µµÂøÇϰųª ³ôÀº ¿ì¼±¼øÀ§·Î ÀçÁ¶Á¤µÈ´Ù°Å³ª ÇÏÁö ¾Ê´Â´Ù. ¿Ö³ÄÇÏ¸é º°µµÀÇ ÆÐŶÀ¸·Î Àü´ÞµÇÁö ¾Ê°í, ÀÏ¹Ý µ¥ÀÌÅÍ¿¡ Æ÷ÇÔµÇ¾î¼ Àü´ÞÀÌ µÇ±â ¶§¹®ÀÌ´Ù. TCP Çì´õÀÇ Urgent Pointer·Î ±ä±Þ µ¥ÀÌÅͰ¡ ½ÃÀ۵Ǵ À§Ä¡¸¦ ¾Ë ¼ö ÀÖ´Ù.
OOB µ¥ÀÌÅ͸¦ Àü´Þ ¹ÞÀº ¿î¿µÃ¼Á¦´Â SIGURG ½Ã±×³ÎÀ» ¹ß»ýÇÑ´Ù. ÀÀ¿ë ¾ÖÇø®ÄÉÀ̼ÇÀº SIGURG¿¡ ´ëÇÑ ½Ã±×³Î Çڵ鷯¸¦ ¼³Ä¡Çؼ, OOB µ¥ÀÌÅ͸¦ ó¸®ÇÒ ¼ö ÀÖ´Ù.
OOB µ¥ÀÌÅ͸¦ »ç¿ëÇϱâ À§Çؼ´Â readÇÔ¼ö¿Í writeÇÔ¼ö°¡ ¾Æ´Ñ recv¿Í send°°Àº ¼ÒÄÏ ÇÔ¼ö¸¦ ÀÌ¿ëÇØ¾ß ÇÑ´Ù. int send(int s, const void *msg, size_t len, int flags);flags¸¦ MSG_OOB·Î ¼³Á¤ÇÏ¸é µÈ´Ù. Çʿ伺
SIGNAL ó¸®
OOB µ¥ÀÌÅͰ¡ µµÂøÇϸé SIGURG ½Ã±×³ÎÀÌ ¹ß»ýÇÑ´Ù. ÀÌ ½Ã±×³Î¿¡ ´ëÇÑ ½Ã±×³Î Çڵ鷯¸¦ ¼³Ä¡ÇÔÀ¸·Î½á, OOB µ¥ÀÌÅ͸¦ ó¸®ÇÏ´Â ¹æ½ÄÀÌ´Ù. int main() { signal(SIGURG, urg_handler); fcntl(sockfd, F_SETOWN, getpid()); } void urg_handler(int signo) { int readn; char buf[MAX_LINE]; printf("SIGURG Receive\n"); memset(buf, 0x00, MAX_LINE); readn = recv(sockfd, buf, MAX_LINE-1, MSG_OOB); printf("URG DATA %s\n", buf); } OOB¸¦ º¸³»´Â Ãø
º¸³»´Â ÃøÀº MSG_OOB¸¦ ¼³Á¤Çؼ Àü¼ÛÇÏ¸é µÈ´Ù. send(sockfd, "AA", 2, MSG_OOB); OOB¸¦ ¹Þ´Â Ãø
OOB¸¦ ¹Þ´Â ÃøÀº fcntlÇÔ¼ö·Î ÀÐÀ» ¼ÒÄÏ¿¡¼ ¹ß»ýÇÏ´Â ½Ã±×³ÎÀ» ¹Þµµ·Ï ó¸®ÇØ ÁÖ¾î¾ß ÇÑ´Ù. ±× ÈÄ SIGURG¿¡ ´ëÇÑ ½Ã±×³Î Çڵ鷯¸¦ ¼³Ä¡ÇÏ¸é µÈ´Ù. ½Ã±×³Î Çڵ鷯¿¡¼ recvÇÔ¼ö·Î ±ä±Þ µ¥ÀÌÅ͸¦ ÀÐÀ¸¸é µÈ´Ù.
void sig_handler(signo) { int oob_data[10] = {0x00,}; recv(sockfd, oob_data, 16, MSG_OOB); // Àû´çÇÑ Ã³¸® } |
|
|
EmailÀ» ±âÀÔÇϸé, ´ñ±ÛÀÌ ¸ÞÀÏ·Î Àü´ÞµË´Ï´Ù. |
|