??说我?说他?这是SOCKET API的编程所用的。

解决方案 »

  1.   

    SOCKET m_hSocket; //socket句柄
    typedef struct sockaddr FAR *LPSOCKADDR;//在WinSocket.h中定义
    返回的地址放在psa中
    struct sockaddr {
      u_short    sa_family;
      char       sa_data[14];
    };   
      

  2.   

    const char* GetHostByAddr(LPCSOCKADDR psa)
    {
    hostent* pHostEnt = gethostbyaddr((char*) &((LPSOCKADDR_IN) psa)
    ->sin_addr.s_addr, 4, PF_INET);
    if(pHostEnt == NULL) {
    throw new CException("Socket名字反向解析");
    }
    return pHostEnt->h_name; // caller shouldn't delete this memory
    }
      

  3.   

    //反向解析SOCKADDR,获得主机名,放在CBlockingSocket,并作为static型成员函数可能更好些