네트워크 전송 방식을 하나로 통일한다
예로들어
받는방법 12 받는방법 12
12하하 너 뭐해 -----------------------------------> 하하 너 뭐해
=================================================
받는방법 h23 받는 방법 12
h23 뭐하냐니깐 ------------------------------------> %$@#$??
받는방법 h23 받는 방법 12
?????? <------------------------------------------- 뭔 개소리야?
보네는넘 받는넘
다르면 쪼개기가 안되서 글자 나누기 않됨
동일 한 크기 조건을 넣어줘서 어디까진 주소로 딱 약속해야함
빅 엔디안(Big Endian) |
상위 바이트 값을 작은 번지수에 저장 | 거의 이거쓴단다
리틀 엔 디안(Little Endian)
상위 바이트의 값을 큰 번지수에 저장
호스트 바이트 순서
CPU 별 데이터 저장방식을 의미함
네트워크 바이트 순서
통일된 데이터 송수신 기준을 의미함 |
빅 엔디안이 기준이다. | 거의 이거서 쓴단다
소켓 생성된 다음에는 걍 자동으로 잘된다
근데 소켓을 호스팅하는거는 내가 해줘야 자동됨 이거만 해주면됨
unsigned short htons(unsigned short);
unsigned short ntohs(unsigned short);
unsigned long htons(unsigned long);
unsigned long ntohs(unsigned long);
그 h(host) 가 호스트를 말아고
n(network)를 말한단다
앞에꺼를 뒤에꺼로 바꿔라 라는 뜻이라고한다
short 는 port 바꾸는거고
long 은 ip 바꾸는거라고한다
ㅇㅇ 그러테
#include <stdio.h>
#include <arpa/inet.h>
int main(int argc, char *argv[])
{
unsigned short host_port=0x1234;
unsigned short net_port;
unsigned long host_addr=0x12345678;
unsigned long net_addr;
net_port=htons(host_port);
net_addr=hton1(hont_addr;
printf("Host ordered port: %#x \n", host_port);
printf("Network ordered port: %#x \n", net_port);
printf("Host ordered address: %#1x \n", host_addr);
printf("'Network ordered address: %#1x \n", net_addr);
return 0;
}
중간에 있는게 정보 변환해서 저장하는듯
자동화 된거같음
위에꺼는 리틀엔디안
결과가 프린트 2개같으면 리틀
프린트 2개가 다르면 빅엔디안 ㅇㅋ?
'[ 충남인력개발원 ] (2019) > ┗TCP&IP' 카테고리의 다른 글
TCP/IP 프로토콜 스택 (0) | 2019.11.24 |
---|---|
bind 함수 뭐지..공부더 해야겟다 (0) | 2019.11.24 |
인터넷 주소 IP PORT 대해서 (0) | 2019.11.24 |
프로토콜의 이해와 소켓의 생성 (0) | 2019.11.24 |
리눅스 함수 전화 거는넘~~! (0) | 2019.11.23 |