htons ¸Þ´º¾ó ÆäÀÌÁö
ÃÑ ÆäÀÌÁö ¼ö : 3224

Àüü ÇÔ¼ö/¿ë¾î»çÀü
Facebook Joinc ±×·ì   Joinc QA »çÀÌÆ®
ÇöÀçÀ§Ä¡ : docbook>htons(3)



joinc´Â Firefox¿Í chrome¿¡¼­ Å×½ºÆ® Çß½À´Ï´Ù. IE¿¡¼­´Â Å×À̺íÀÌ ±úÁö°Å³ª À̹ÌÁö°¡ º¸ÀÌÁö ¾ÊÀ» ¼ö ÀÖ½À´Ï´Ù. ƯÈ÷ ±¸±Û DocsÀ̹ÌÁöÀÇ °æ¿ì ¿¢¹Úó¸®µÉ ¼ö ÀÖ½À´Ï´Ù.
HTML º¯È¯¹®¼­

<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook V4.1//EN"> 
<chapter lang=ko> 
<!-- ÀÛ¼ºÀÚ : yundream             --> 
<!-- ÀÛ¼ºÀÏ : 2004/01/03           --> 
<!-- ¿¬¶ôó : yundream@joinc.co.kr --> 
 
<!-- ÇÔ¼ö À̸§À» ÀÔ·ÂÇÕ´Ï´Ù --> 
<title>htons(3)</title> 
 
<!-- ÀÌ°Ç ÇÔ¼ö¿¡ ´ëÇÑ ´ë·«ÀûÀÎ ¼³¸íÀ̱¸¿ä --> 
<para> 
    host byte orderÀ» µû¸£´Â µ¥ÀÌÅ͸¦ network byte order·Î º¯°æÇÑ´Ù. 
</para> 
  
<!-- ¿©±â¿¡ ÇÔ¼öÀÇ °£´ÜÇÑ »ç¿ë¹ýÀÌ µé¾î°©´Ï´Ù --> 
<section> 
    <title>»ç¿ë¹ý</title> 
    <para> 
        <screen> 
#include <netinet.h> 
 
unsigned short int htons(unsigned short int hostshort); 
unsigned long int htonl(unsigned long int hostshort); 
unsigned short int ntohs(unsigned short int hostshort); 
unsigned long int ntohl(unsigned long int hostshort); 
        </screen> 
    </para> 
</section> 
 
<!-- ¿©±â¿£ ÇÔ¼öÀÇ ÀÚ¼¼ÇÑ ¼³¸í ÀÌ µé¾î°©´Ï´Ù --> 
<section> 
    <title>¼³¸í</title> 
    <para> 
        µ¥ÀÌÅÍ´Â ¹ÙÀÌÆ® ´ÜÀ§·Î ÀúÀåµÇÁö¸¸ ÀúÀåµÇ´Â ¹æ½Ä¿¡ À־ CPU¸¶´Ù  
        Â÷À̰¡ ¹ß»ýÇÏ°Ô µÈ´Ù. ¿¹¸¦ µé¾î 4¹ÙÀÌÆ® Å©±âÀÇ intÀڷḦ ÀúÀåÇÑ´Ù°í  
        ÇßÀ» ¶§ ¾î¶² CPU´Â °¡Àå ³·Àº ¹ÙÀÌÆ®ºÎÅÍ ÀúÀåÀ» Çϴ°¡ Çϸé, ¾î¶² CPU´Â 
        °¡Àå ³ôÀº ¹ÙÀÌÆ® ºÎÅÍ µ¥ÀÌÅ͸¦ ÀúÀåÇϱ⵵ ÇÑ´Ù.  
        ÀüÀÚ¸¦ Little Endian¹æ½Ä, ÈÄÀÚ¸¦ Big Endian¹æ½Ä À̶ó°í ÇÑ´Ù.      
    </para> 
    <para> 
        ÀÌ·± ÀÌÀ¯·Î ¼­·Î ´Ù¸¥ µ¥ÀÌÅÍ ÀúÀå ¹æ½ÄÀ» »ç¿ëÇÏ´Â ½Ã½ºÅÛ³¢¸® Åë½ÅÀ»  
        ÇÏ°Ô µÉ°æ¿ì ÀüÇô ¿øÇÏÁö ¾Ê´Â °ªµéÀ» ¼­·Î ÁÖ°í ¹Þ´Â °æ¿ì°¡ ¹ß»ýÇÒ ¼ö ÀÖ´Ù.  
        ÇÑÂÊ¿¡¼­´Â 12345¸¦ º¸³Â´Âµ¥, ´Ù¸¥ ÇÑÂÊ¿¡¼­´Â ¾û¶×ÇÏ°Ô 365779719·Î ¹Þ¾Æ µéÀÌ´Â  
        ¹®Á¦µéÀÌ ¹ß»ýÇÑ´Ù.     
    </para> 
    <para> 
        ÀÌ·± ¹®Á¦¸¦ ÇØ°áÇϱâ À§Çؼ­ µ¥ÀÌÅÍ Åë½ÅÀ» ÇÒ¶§´Â ¸í½ÃÀûÀ¸·Î  
        ³×Æ®¿öÅ© byte orderÀ» µû¸£µµ·Ï µ¥ÀÌÅÍÀÇ byte order¸¦ º¯°æÇÑ´Ù.  
        ³×Æ®¿öÅ© byte order´Â Big EndiasnÀ» µû¸¥´Ù.    
    </para> 
    <para> 
        ¿ø°Ý È£½ºÆ®¿Í µ¥ÀÌÅÍ Åë½ÅÀ» ÇÏ±æ ¿øÇÑ´Ù¸é º¸³¾ ¶§ ³×Æ®¿öÅ© byte order·Î,  
        ¹Þ¾ÒÀ» ¶§´Â È£½ºÆ® byteorder·Î º¯°æÇÑ´Ù.    
    </para> 
    <para> 
        <emphasis>htonl()</emphasis>ÇÔ¼ö´Â long intger(ÀϹÝÀûÀ¸·Î 4byte)µ¥ÀÌÅ͸¦ 
        ³×Æ®¿öÅ© byte order·Î º¯°æÇÑ´Ù. 
    </para> 
    <para> 
        <emphasis>htons()</emphasis>ÇÔ¼ö´Â short intger(ÀϹÝÀûÀ¸·Î 2byte)µ¥ÀÌÅ͸¦ 
        ³×Æ®¿öÅ© byte order·Î º¯°æÇÑ´Ù. 
    </para> 
    <para> 
        <emphasis>ntohl()</emphasis>ÇÔ¼ö´Â long intger µ¥ÀÌÅ͸¦ 
        È£½ºÆ® byte order·Î º¯°æÇÑ´Ù. 
    </para> 
    <para> 
        <emphasis>ntohs()</emphasis>ÇÔ¼ö´Â short intger µ¥ÀÌÅ͸¦ 
        È£½ºÆ® byte order·Î º¯°æÇÑ´Ù. 
    </para> 
    <para> 
        Endian°ú ³×Æ®¿öÅ© byte order¿¡ ´ëÇÑ ÀÚ¼¼ÇÑ ³»¿ëÀº  
        <ulink url="http://www.joinc.co.kr/modules.php?name=News&file=article&sid=79">Endian¿¡ ´ëÇØ¼­</ulink>¸¦ Âü°íÇϱ⠹ٶõ´Ù.  
    </para> 
</section> 
 
<!-- ÇÔ¼ö°¡ µÇµ¹·ÁÁÖ´Â °ªÀ̱¸¿ä --> 
<section> 
    <title>¹Ýȯ°ª</title> 
    <para> 
        ³×Æ®¿öÅ© byte orderµÈ 2¹ÙÀÌÆ® °ªÀ» ³Ñ°ÜÁØ´Ù.  
    </para> 
</section> 
 
<!-- ¸¶Áö¸·À¸·Î ¿¡Á¦ ÀÔ´Ï´Ù                                                 --> 
<!-- ¿©±â¿¡´Â ¿ÏÀüÇÑ ¿¹Á¦°¡ µé¾î°¡ Àִµ¥, ±»ÀÌ ¿ÏÀüÇÑ ¿¹Á¦¸¦ ¸¸µéÇÊ¿ä ¾øÀÌ --> 
<!-- ÄÚµå ÀϺκи¸ ÀÛ¼ºÇؼ­ ¿Ã·ÁÁּŵµ µË´Ï´Ù                               -->  
<!-- "<", ">", "&" µîÀº º¯È¯ÇØ ÁÖ¼Å¾ß Çϴµ¥, ±ÍÂúÀ¸½Ã¸é :-) º¯È¯ ÇÏÁö ¾Ê   --> 
<!-- ¾Æµµ µË´Ï´Ù. Á¦°¡ °Ë»ç ÇØ¼­ ¿Ã¸®°Ú½À´Ï´Ù                               --> 
<!-- ¿¹Á¦¿¡ ´ëÇÑ °£´ÜÇÑ ¼³¸íÀ» Àû¾îÁּŵµ µÇ±¸¿ä                            --> 
<section> 
    <title>¿¹Á¦</title> 
    <para> 
        <screen> 
#include <sys/time.h> 
#include <sys/socket.h> 
#include <fcntl.h> 
#include <unistd.h> 
#include <sys/types.h> 
#include <sys/stat.h> 
#include <unistd.h> 
#include <stdlib.h> 
#include <stdio.h> 
#include <netinet/in.h> 
#include <arpa/inet.h> 
 
int main(int argc, char **argv) 
{ 
    int client_sockfd; 
    struct sockaddr_in clientaddr; 
    int data = 123456789; 
    int client_len; 
 
    client_sockfd = socket(AF_INET, SOCK_STREAM, 0); 
    clientaddr.sin_family = AF_INET; 
    clientaddr.sin_addr.s_addr = inet_addr("192.168.100.190"); 
    clientaddr.sin_port = htons(atoi(argv[1])); 
 
    client_len = sizeof(clientaddr); 
 
    if (connect(client_sockfd, (struct sockaddr *)&clientaddr, client_len) < 0) 
    { 
        perror("Connect error : "); 
        exit(0); 
    } 
     
    // º¸³¾ µ¥ÀÌÅÍ ³×Æ®¿öÅ© byte order¸¦ µû¸£µµ·Ï º¯°æÇÑ´Ù.  
    data = htonl(data); 
    write(client_sockfd, (void *)&data, sizeof(int)); 
 
    // ÀоîµéÀÎ µ¥ÀÌÅʹ ȣ½ºÆ® byte orderÀ» µû¸£µµ·Ï º¯°æÇÑ´Ù. 
    read(client_sockfd, (void *)&data, sizeof(int)); 
    data = ntohl(data); 
    close(client_sockfd); 
} 
        </screen> 
    </para> 
</section> 
</chapter> 
 
EmailÀ» ±âÀÔÇϸé, ´ñ±ÛÀÌ ¸ÞÀÏ·Î Àü´ÞµË´Ï´Ù.