QT udp通信如何获取本机IP

QT udp通信如何获取本机IP,第1张

QString MainWindow::getIP2() //获取ip地址{ QList<QHostAddress> list = QNetworkInterface::allAddresses(); foreach (QHostAddress address, list) { if(addressprotocol() == QAbstractSocket::IPv4Protocol) //我们使用IPv4地址 return addresstoString(); } return 0;}

getpeername()

这个系统的调用十分简单。它将告诉你是谁在连接的另一端:

#include<sys/socketh>

int getpeername(int sockfd,struct sockaddr addr,int addrlen);

第一个参数是连接的数据流套接口文件描述符。

第二个参数是指向包含另一端的信息的数据结构sockaddr的指针。

第三个参数可以设置为sizeof(structsockaddr)。

如果出错,系统调用将返回-1。

一旦你获得了它们的地址,你可以使用inet_ntoa()或者gethostbyaddr()来得到更多的信息。

[目录]

gethostname()

系统调用gethostname()比系统调用getpeername()还简单。它返回程序正在运行的计算机的名字。系统调用gethostbyname()可以使用这个名字来决定你的机器的IP地址。

下面是一个例子:

#include<unistdh>

int gethostname(charhostname,size_tsize);

如果成功,gethostname将返回0。如果失败,它将返回-1。

Trackback: >

通常内网地址DMZ区,通常无法直接访问。

需要中间有服务器中转。

如果能控制另一个网络路由器,可以做端口指向,这个有点麻烦。

就是你的IP是192168110,网关是19216811,另一个网络IP是192168210,网关是19216821

19216811和19216821可能是一个L2的不同网口,也可能是一个服务器的两个网卡。

情况不一样,做法不一样。

以上就是关于QT udp通信如何获取本机IP全部的内容,包括:QT udp通信如何获取本机IP、socket通信中 ,服务器如何获取连接的客户端的主机名。求函数代码、想要用socket连接一个另一个网络中的内网地址如何知道他的ip等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://www.54852.com/web/10077089.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-05
下一篇2023-05-05

发表评论

登录后才能评论

评论列表(0条)

    保存