#include <winsock2.h>
#include <stdio.h>
int main(int argc, char* argv[])
{
WSADATA wsa;
if(WSAStartup(MAKEWORD(2, 2), &wsa) != 0)
return -1;
SOCKET tcp_sock = socket(AF_INET, SOCK_STREAM, 0);
u_short x = 0x1234;
u_long y = 0x12345678;
u_short x2;
u_long y2;
u_short *a=&x2;
u_long *b=&y2;
u_short *c=&x;
u_long *d=&y;
WSAHtons(tcp_sock, x, a);
WSAHtonl(tcp_sock, y, b);
// 호스트 바이트 -> 네트워크 바이트
printf("호스트 바이트 -> 네트워크 바이트\n");
printf("0x%x -> 0x%x\n", x, x2);
printf("0x%x -> 0x%x\n", y, y2);
WSANtohs(tcp_sock, x2, c);
WSANtohl(tcp_sock, y2, d);
// 네트워크 바이트 -> 호스트 바이트
printf("네트워크 바이트 -> 호스트 바이트\n");
printf("0x%x -> 0x%x\n", x2, x);
printf("0x%x -> 0x%x\n", y2, y);
//잘못된 사용 예
/*WSAHtonl(tcp_sock, x, a);
printf("잘못된 사용 예 \n");
printf("0x%x -> 0x%x\n", x, y); */
WSACleanup();
return 0;
}