Всем привет, задачу переделываю чтобы работала на Windows XP и возникла небольшая трудность. Функции Win API InetNtop и InetPton отсутствуют в Win XP хочу заменить их на WSAAddressToString и WSAStringToAddress вот собственно код:
//!Convertor IN_ADDR or IN6_ADDR to CString. Argument addr cast from IN_ADDR or IN6_ADDR, in argument Family set the AF_INET or AF_INET6
inline bool Ip2Str(PVOID addr, CString &ip, CString &err_msg, INT Family = AF_INET){
bool ret_val(false);
TCHAR ip_[MAX_ADDRESS_STRING_LENGTH] = { '\0' };
if (InetNtop(Family, addr, ip_, MAX_ADDRESS_STRING_LENGTH)){
ip = ip_;
ret_val = true;
}
else{
err_msg = GetErrMsg(WSAGetLastError());
}
return ret_val;
}
//!Convertor from CString ip address to IN_ADDR or IN6_ADDR. Argument addr cast from IN_ADDR or IN6_ADDR, in argument Family set the AF_INET or AF_INET6
inline bool Str2Ip(const CString &ip, PVOID *addr, CString &err_msg, INT Family = AF_INET){
bool ret_val(false);
if (InetPton(Family, ip, addr)){
ret_val = true;
}
else{
err_msg = GetErrMsg(WSAGetLastError());
}
return ret_val;
}
Что бы заменить функции InetNtop и InetPton на WSAAddressToString и WSAStringToAddress в моем случае нужно преобразовать IN_ADDR в SOCKADDR и наоборот, кто в курсе как это сделать подскажите плиз.
Спасибо.