就自己新建一个类,在类的h文件里里面新建一个slot 修饰的函数,然后在对应的c文件中具体实现这个函数,比如要用到socket,要如何连接,如何发送数据包,再等待接受回应,如何判断是否发送与接收一致,再处理。就OK了。
MFC:
---------------在StdAfxh中加入---------------------#include <winsock2h> //套接字编程需要的头文件
#pragma comment(lib,"ws2_32lib") //套接字编程需要的库文件
---------------在要用的地方---------------------
WSADATA wsadata;
if(0 != WSAStartup(MAKEWORD(2, 2), &wsadata)) //初始化
{
AfxMessageBox("初始化网络环境失败!");
return TRUE;
}
char szHostName[MAX_PATH + 1];
gethostname(szHostName, MAX_PATH); //得到计算机名
hostent p = gethostbyname(szHostName); //从计算机名得到主机信息
if(p == NULL)
{
AfxMessageBox("得到本机网络信息失败!");
return TRUE;
}
m_strName = szHostName; //保存主机名
int nCount = 0; //保存主机地址
char pIP = inet_ntoa((in_addr )p->h_addr_list[0]);//将32位IP转化为字符串IP
m_strAddr = pIP; //保存主机IP地址
UpdateData(FALSE); //显示各个数据
WSACleanup(); //释放Winsock API
QT:
QString Widget::getIP() //获取ip地址{
QList<QHostAddress> list = QNetworkInterface::allAddresses();
foreach (QHostAddress address, list)
{
if(addressprotocol() == QAbstractSocket::IPv4Protocol)
//我们使用IPv4地址
return addresstoString();
}
return 0;
}
或者
QString localHostName = QHostInfo::localHostName();
qDebug() <<"localHostName:"<<localHostName;
QHostInfo info = QHostInfo::fromName(localHostName);
foreach(QHostAddress address,infoaddresses())
{
if(addressprotocol() == QAbstractSocket::IPv4Protocol)
qDebug() <<"IPV4 Address: "<< addresstoString();
}
另外,如果是windows系统:
可以参考:>
以上就是关于Qt开发 打算写一个接口,来测试是否能够ping通指定的ip全部的内容,包括:Qt开发 打算写一个接口,来测试是否能够ping通指定的ip、C/C++ 如果获取本机IP和修改IP,代码尽量要简介,本人菜鸟、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)