一个郁闷的问题,使用gethostbyaddr函数发生异常,请高手指点迷津
源代码如下:
u_short iPort = 8080;
struct sockaddr_in addr_srv;
struct hostent *ptrHost;
char *pszHost= "192.168.0.201";
WSADATA wsaData;
WORD wVersionRequested;
wVersionRequested = MAKEWORD( 1, 1);
err = WSAStartup( wVersionRequested, &wsaData );
if ( err != 0 ) {
WriteInfo("Error: Winsock not available\n" + err);
return 1;
}
sd_client = socket(PF_INET, SOCK_STREAM, 0);
u_long ip_addr = inet_addr(pszHost);
ptrHost = gethostbyaddr((char *)&ip_addr,
sizeof(u_long), AF_INET);
错误之处就是ptrHost = gethostbyaddr((char *)&ip_addr,
sizeof(u_long), AF_INET);
返回的ptrHost为0X00000000,为什么不能返回正确的ptrHost呢??