2.6 앞으로 사용할 파일 [TCP/IP 소켓 프로그래밍 with 윈도우즈]

이 책에서 다루는 예제에서 공통으로 사용할 부분을 소개할게요. 참고로 이 책에서는 콘솔 응용프로그램 형태와 윈도우즈 응용 프로그램 형태를 모두 사용할 것입니다.

//common.h
#pragma once
#include <WinSock2.h>
#include <Windows.h>
#include <process.h>
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <malloc.h>
#pragma comment(lib,"ws2_32")
#pragma warning(disable:4996)
IN_ADDR GetDefaultMyIP();
//common.cpp
#include "common.h"
IN_ADDR GetDefaultMyIP() 
{
    char localhostname[MAX_PATH];
    IN_ADDR addr={0,};
    if(gethostname(localhostname, MAX_PATH) == SOCKET_ERROR)
    {
        return addr;
    }
    HOSTENT *ptr = gethostbyname(localhostname);
    while(ptr && ptr->h_name)
    {
        if(ptr->h_addrtype == PF_INET)
        {
            memcpy(&addr, ptr->h_addr_list[0], ptr->h_length);
            break; 
        }
        ptr++;
    }
    return addr;
}