标题:qnetworkaccessmanager能否设置地址和端口
作者:介农酥
日期:2019-09-12 12:51
内容:
今天客户突然说要post的地址,我当时懵了,我写的代码里没有地址啊,后面网上找了下,QHttp可以设的,但是qnetworkaccessmanager里我没找到设置地址和端口的方法,难道是默认的:http://127.0.0.1:8080?
2019/9/12 16:12add
我刚刚弄明白了他们的意思,他们应该是要一个IP和端口,然后将这个IP和端口加入白名单,只有白名单的地址和端口才能访问,但是我这个客户端的内部使用的http的IP和端口是多少呢?
地址肯定就是主机的地址,端口是应用程序的还是http内部的,其实8080是进程的端口,所以这个端口就是应该程序的端口
其实web服务器就是一个特殊的进程,它固定端口为8080,客户端发送数据进入为服务器上端口为8080的进程,进程收到这个报文,它看到是http协议的,所以,它就按照这个协议的数据去解析数据,也就是QT提供的http没有端口的意思,只是按照这个协议将数据解析出来。
这个进程的端口怎么固定啊,进程的端口号和socket的端口是
2019/9/12 16:49add
我很纳闷啊,这个端口到底时进程的还是啥的?
我跟他们的人又聊了聊,他们服务器post的我,确实是需要地址和端口啊,这个端口是多少啊,我这边又不是服务器,它们按照解析出来的客户端的IP和端口能发送到我这吗。我问下,我去post它们,服务器响应我的时候,难道不需要地址吗,难道不是get或者post,有懂web编程的讲讲啊?
你说,我这边又不是服务器,它如何post我。QT能写一个web服务器吗?
#1 [liudianwu 09-12 12:59]
QNetworkAccessManager *manager = new QNetworkAccessManager(this);
connect(manager, SIGNAL(finished(QNetworkReply*)),
this, SLOT(replyFinished(QNetworkReply*)));
manager->get(QNetworkRequest(QUrl("http://qt-project.org")));
QNetworkRequest可以设置url地址和端口等。
#2 回 liudianwu 的帖子 [介农酥 09-12 13:37]
liudianwu:QNetworkAccessManager *manager = new QNetworkAccessManager(this);
connect(manager, SIGNAL(finished(QNetworkReply*)),
this, SLOT(replyFinished(QNetworkReply*)));
manager->get .. (2019-09-12 12:59)
非常感谢,客户要的是我这边得地址和端口,服务器主动post的我
流程是这样的:
我去post
|
然后对方返回,我接收
|
对方主动post(这个时候需要我的地址和端口)
|
然后我又响应
|
对方发送
|
我又接收,并post,然后对方又发送,我接收,然后post,一直这样,直到接收完为止。
#3 [nigoole 09-12 15:00]
需要回传的话,需要建立长连接~对方服务器是公网,就算你给了他你的ip和端口,他同样访问不过来!~
#4 回 nigoole 的帖子 [介农酥 09-12 16:27]
nigoole:需要回传的话,需要建立长连接~对方服务器是公网,就算你给了他你的ip和端口,他同样访问不过来!~ (2019-09-12 15:00)
我刚刚弄明白了他们的意思,他们应该是要一个IP和端口,然后将这个IP和端口加入白名单,只有白名单的地址和端口才能访问,但是我这个客户端的内部使用的http的IP和端口是多少呢?
地址肯定就是主机的地址,端口是应用程序的还是http内部的,其实8080是进程的端口,所以这个端口就是应该程序的端口
其实web服务器就是一个特殊的进程,它固定端口为8080,客户端发送数据进入为服务器上端口为8080的进程,进程收到这个报文,它看到是http协议的,所以,它就按照这个协议的数据去解析数据,也就是QT提供的http没有端口的意思,只是按照这个协议将数据解析出来。