TCP/IP
호스트pc(리틀엔디안) <-> 네트워크(빅엔디안)
알 수 없는 사용자
2011. 7. 1. 15:39
네트워크 상에서는 빅엔디안을 사용
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;
}