• 2774阅读
  • 4回复

[提问]qnetworkaccessmanager能否设置地址和端口 [复制链接]

上一主题 下一主题
离线介农酥
 

只看楼主 倒序阅读 楼主  发表于: 2019-09-12
今天客户突然说要post的地址,我当时懵了,我写的代码里没有地址啊,后面网上找了下,QHttp可以设的,但是qnetworkaccessmanager里我没找到设置地址和端口的方法,难道是默认的:http://127.0.0.1:8080?


2019/9/12 16:12  add
我刚刚弄明白了他们的意思,他们应该是要一个IP和端口,然后将这个IP和端口加入白名单,只有白名单的地址和端口才能访问,但是我这个客户端的内部使用的http的IP和端口是多少呢?
地址肯定就是主机的地址,端口是应用程序的还是http内部的,其实8080是进程的端口,所以这个端口就是应该程序的端口
其实web服务器就是一个特殊的进程,它固定端口为8080,客户端发送数据进入为服务器上端口为8080的进程,进程收到这个报文,它看到是http协议的,所以,它就按照这个协议的数据去解析数据,也就是QT提供的http没有端口的意思,只是按照这个协议将数据解析出来。

这个进程的端口怎么固定啊,进程的端口号和socket的端口是

2019/9/12 16:49  add
我很纳闷啊,这个端口到底时进程的还是啥的?

我跟他们的人又聊了聊,他们服务器post的我,确实是需要地址和端口啊,这个端口是多少啊,我这边又不是服务器,它们按照解析出来的客户端的IP和端口能发送到我这吗。我问下,我去post它们,服务器响应我的时候,难道不需要地址吗,难道不是get或者post,有懂web编程的讲讲啊?

你说,我这边又不是服务器,它如何post我。QT能写一个web服务器吗?







离线liudianwu

只看该作者 1楼 发表于: 2019-09-12
QNetworkAccessManager *manager = new QNetworkAccessManager(this);
  connect(manager, SIGNAL(finished(QNetworkReply*)),
          this, SLOT(replyFinished(QNetworkReply*)));
  manager->get(QNetworkRequest(QUrl("http://qt-project.org")));
QNetworkRequest可以设置url地址和端口等。
欢迎关注微信公众号:Qt实战/Qt入门和进阶(各种开源作品、经验整理、项目实战技巧,专注Qt/C++软件开发,视频监控、物联网、工业控制、嵌入式软件、国产化系统应用软件开发) QQ:517216493  WX:feiyangqingyun  QQ群:751439350
离线介农酥

只看该作者 2楼 发表于: 2019-09-12
回 liudianwu 的帖子
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,一直这样,直到接收完为止。

离线nigoole

只看该作者 3楼 发表于: 2019-09-12
需要回传的话,需要建立长连接~对方服务器是公网,就算你给了他你的ip和端口,他同样访问不过来!~
有句话说得好:好好学习,天天向上。加油~~!有上船的朋友联系企鹅393320854
离线介农酥

只看该作者 4楼 发表于: 2019-09-12
回 nigoole 的帖子
nigoole:需要回传的话,需要建立长连接~对方服务器是公网,就算你给了他你的ip和端口,他同样访问不过来!~ (2019-09-12 15:00)

我刚刚弄明白了他们的意思,他们应该是要一个IP和端口,然后将这个IP和端口加入白名单,只有白名单的地址和端口才能访问,但是我这个客户端的内部使用的http的IP和端口是多少呢?
地址肯定就是主机的地址,端口是应用程序的还是http内部的,其实8080是进程的端口,所以这个端口就是应该程序的端口
其实web服务器就是一个特殊的进程,它固定端口为8080,客户端发送数据进入为服务器上端口为8080的进程,进程收到这个报文,它看到是http协议的,所以,它就按照这个协议的数据去解析数据,也就是QT提供的http没有端口的意思,只是按照这个协议将数据解析出来。
快速回复
限100 字节
 
上一个 下一个