Russian Qt Forum

Qt => Работа с сетью => Тема начата: Volodia от Ноябрь 06, 2006, 16:36



Название: Host name, qt 3.3.3
Отправлено: Volodia от Ноябрь 06, 2006, 16:36
Народ, хелп...как в QT 3.3.3 взять имя машини(локального хоста). В QT 4 есть QHostInfo, а что делать в qt 3.3.3?

Спасибо.


Название: Host name, qt 3.3.3
Отправлено: Dendy от Ноябрь 06, 2006, 22:32
ВьІдрать код из Qt4 :)


Название: Host name, qt 3.3.3
Отправлено: Volodia от Ноябрь 07, 2006, 11:25
Я так ничего и не нашел и пришлось использовать KProcess :)
KProcess * procHostName = new KProcess;
connect(procHostName, SIGNAL(receivedStdout(KProcess*, char*, int)), this, SLOT(filterOutputHostName(KProcess *, char *, int)));
procHostName->clearArguments ();
*procHostName << "hostname";   
procHostName->start(KProcess::DontCare, KProcess::Stdout);
void filterOutputHostName(KProcess *proc, char *buffer, int buflen)
{   
   hostName = buffer;
}
Метод наверное извращенный, так что не бейте сильно :)
Если есть другие варианты то напишите, буду очень благодарен.


Название: Host name, qt 3.3.3
Отправлено: alexis от Ноябрь 07, 2006, 20:09
В qt 3.x есть класс QDns.
Может имеет смысл посмотреть в его сторону?


Название: Host name, qt 3.3.3
Отправлено: Vld2 от Ноябрь 07, 2006, 23:20
gethostname - однако это уже не qt


Название: Host name, qt 3.3.3
Отправлено: Sergeich от Ноябрь 08, 2006, 15:51
Код:
#ifdef Q_WS_WIN
#include <winsock2.h>
#endif
#ifdef Q_WS_X11
#include <unistd.h>
#include <netdb.h>
#endif

inline QString localHostName()
{
#ifdef Q_WS_WIN
WSAData wsadata;
if ( WSAStartup( MAKEWORD(1,0), &wsadata ) != 0 ) return QString();
#endif
char buf[255];
gethostname( buf, 255 );
return QString(buf);
}


Название: Host name, qt 3.3.3
Отправлено: Negative от Ноябрь 08, 2006, 16:21
к Q_WS_X11 можно смело маковский дефайн добавлять, gethostname там естественно тоже есть :)