네트워크 상에서는 빅엔디안을 사용
htons()함수 : 호스트에서 port번호(2바이트)를 네트워크로 바꿀 때 사용
ntohs()함수 : 네트워크에서 port번호(2바이트)를 호스트로 바꿀 때 사용
htonl()함수 : 호스트에서 IP주소(4바이트)를 네트워크로 바꿀 때 사용
ntohl()함수 : 네트워크에서 IP주소(4바이트)를 호스트로 바꿀 때 사용
h는 host, n은 network, s는 short(2byte), l은 long(4byte)
#include <stdio.h>
int main()
{
short host_port_order = 0x1234;
short net_port_order;
long host_add_order = 0x12345678;
long net_add_order;
net_port_order = htons(host_port_order);
net_add_order = htonl(host_add_order);
printf(" Host ordered port : %x\n", host_port_order);
printf("Network ordered port : %x\n\n", net_port_order);
printf(" Host ordered address : %x\n", host_add_order);
printf("Network ordered address : %x\n", net_add_order);
return 0;
}
htons()함수 : 호스트에서 port번호(2바이트)를 네트워크로 바꿀 때 사용
ntohs()함수 : 네트워크에서 port번호(2바이트)를 호스트로 바꿀 때 사용
htonl()함수 : 호스트에서 IP주소(4바이트)를 네트워크로 바꿀 때 사용
ntohl()함수 : 네트워크에서 IP주소(4바이트)를 호스트로 바꿀 때 사용
h는 host, n은 network, s는 short(2byte), l은 long(4byte)
P C 네트워크
리틀엔디안 빅엔디안
2byte(port번호) --------------------->
htons()함수 사용
<--------------------
ntohs()함수 사용
4byte(IP 주소) --------------------->
htonl()함수 사용
<---------------------
ntohl()함수 사용
리틀엔디안 빅엔디안
2byte(port번호) --------------------->
htons()함수 사용
<--------------------
ntohs()함수 사용
4byte(IP 주소) --------------------->
htonl()함수 사용
<---------------------
ntohl()함수 사용
#include <stdio.h>
int main()
{
short host_port_order = 0x1234;
short net_port_order;
long host_add_order = 0x12345678;
long net_add_order;
net_port_order = htons(host_port_order);
net_add_order = htonl(host_add_order);
printf(" Host ordered port : %x\n", host_port_order);
printf("Network ordered port : %x\n\n", net_port_order);
printf(" Host ordered address : %x\n", host_add_order);
printf("Network ordered address : %x\n", net_add_order);
return 0;
}
'TCP/IP' 카테고리의 다른 글
TCP 클라이언트 (0) | 2011.07.07 |
---|---|
inet_addr()함수, (=inet_aton) (0) | 2011.07.01 |
gethostbyname() 함수 (0) | 2011.07.01 |
inet_ntoa() 함수 (0) | 2011.07.01 |
소켓의 생성과 해지 (0) | 2011.06.29 |