한국어 Translate to English (by Google) 日本語に翻訳します (by excite.co.jp)       작성자: Kyuseo의 게임 프로그래밍 이야기 :: http://www.soonsin.com | 트위터 @kyuseo

개요..

 

윈도우 소켓 (WinSock) 함수인 주소를 IP어드레스로 변환할 수 있는 gethostbyname gethostname gethostbyaddr 함수의 사용 예 및 주의사항을 설명해드립니다.

 

gethostbyname 함수는 "www.tk.co.kr" 와 같은 영문 이름을 "211.41.11.xxx"와 같은 컴퓨터가 이해할 수 있는 숫자 기반의 주소로 변환하는 함수입니다. 하지만 인터넷을 이용하기 때문에 종종 NULL 값이 리턴이 되므로 반드시 그것에 대한 예외 처리를 해야 프로그램이 죽는 현상을 막을 수 있습니다.

 

 

예제 코드

 

 

in_addr in;

LPHOSTENT lphost = gethostbyname( "tk.co.kr" );

if( lphost != NULL )    

{

    in.s_addr = ( ( LPIN_ADDR ) lphost->h_addr )->s_addr;

 

    CString strAddr = inet_ntoa( in ); // 변환된 주소를 사용한다.

}

else

{

    in.s_addr = 0;

 

    int error = WSAGetLastError(); // 오류코드를 처리한다.

}

 

 

 

리턴된 error 값은 아래와 같은 오류조회 툴로 확인할 수 있습니다.

 

 

 

오류 코드 : 출처 MSDN 참고

 

Error code

Description

WSANOTINITIALISED

A successful WSAStartup call must occur before using this function.

WSAENETDOWN

The network subsystem has failed.

WSAHOST_NOT_FOUND

An authoritative answer host was not found.

WSATRY_AGAIN

A nonauthoritative host was not found, or the server failure.

WSANO_RECOVERY

A nonrecoverable error occurred.

WSANO_DATA

A valid name exists, but no data record of the requested type exists.

WSAEINPROGRESS

A blocking Winsock call is in progress, or the service provider is still processing a callback function.

WSAEFAULT

The name parameter is not a valid part of the user address space.

WSAEINTR

The socket was closed.

 

 




qrcode
이 글의 QR 코드입니다.


이 저작물은 비영리, 출처:Kyuseo 프로그래밍 이야기 :: http://www.soonsin.com 표시하면 스크랩 하실 수 있습니다.

별도로 출처 표시가 되지 않은 저작물은 Kyuseo에게 저작권이 있습니다.   ★──━━ 행복한 하루 되세요 ━━──★

BLOG main image
93년부터 프로그래밍을 독학한 게임 프로그래머 kyuseo의 프로그래밍 정보와 게임 개발 강좌를 주로 다룹니다. by kyuseo

카테고리

분류 전체보기 (623)
누리게임즈 (4)
Kyuseo 소개, 잡담 (161)
만든 게임 및 프로그램 (98)
-----------★----------- (0)
개발자 팁 (65)
스마트폰 게임 개발 (47)
C++ 개발 (119)
------------------------♣ (0)
컴퓨터 활용 팁 (98)
게임, 서적, 문화 소감 (31)
------------------------♥ (0)
전체 : 2,718,083
오늘 : 50 어제 : 78