找回密码
 立即注册
收起左侧

QT udp通信,服务端怎么获取客户端的端口号?

5
回复
9701
查看
[复制链接]
累计签到:31 天
连续签到:1 天
来源: 2018-11-6 10:50:00 显示全部楼层 |阅读模式
5Qter豆
我把QT作为一个服务端,当客户端连接并发送数据时使用connect(uSocket2, SIGNAL(readyRead()), this, SLOT(Udp_receive_server()));接收信息

因为发送数据需要ip和端口
uSocket2->writeDatagram(tr("ui->textEdit->toPlainText()").toUtf8(),QHostAddress("192.168.1.117"),5999);

但我没有设定客户端的端口号,所以客户端发信息时端口号是随机的(其他udp软件)

现在我服务端需要返回信息给客户端,在不知道客户端端口的情况下怎么发信息给客户端?或者说有什么函数可以获取客户端的端口号?

不要说绑定端口的解决方式,我想问的是如何在不绑定客户端端口的情况下,回复消息给客户端

最佳答案

查看完整内容

UDP 协议,无连接协议,无法知道是谁给你发送了消息,你想回复消息基本上是做不到的;客户端要接收回复的消息,必定需要监听一个端口,因为没有外部已知的连接;根据你的描述,在你的报文中附带自己的IP 和 监听端口(发送端口是什么无所谓),Qt 服务端在接收到报文后,解析 目标地址和端口,同样用 UDP 发过去就好了, ...
回复

使用道具 举报

累计签到:742 天
连续签到:1 天
2018-11-6 10:50:01 显示全部楼层
UDP 协议,无连接协议,无法知道是谁给你发送了消息,你想回复消息基本上是做不到的;客户端要接收回复的消息,必定需要监听一个端口,因为没有外部已知的连接;根据你的描述,在你的报文中附带自己的IP 和 监听端口(发送端口是什么无所谓),Qt 服务端在接收到报文后,解析 目标地址和端口,同样用 UDP 发过去就好了,
回复

使用道具 举报

累计签到:31 天
连续签到:1 天
2018-11-8 14:11:46 显示全部楼层
其实我想问的就是用什么代码可以获取客户端发送信息过来使用的IP地址和端口号
回复

使用道具 举报

累计签到:9 天
连续签到:1 天
2018-11-19 10:44:10 显示全部楼层
那我想问个问题,接收客户端的消息这一步做到了吗?
回复

使用道具 举报

累计签到:31 天
连续签到:1 天
2018-11-19 14:47:40 显示全部楼层
猿来在这 发表于 2018-11-19 10:44
那我想问个问题,接收客户端的消息这一步做到了吗?

做到了,问题也解决了,贴吧解决,接收客户端消息需要客户端知道服务端IP和端口,作为服务端IP是固定的,端口是自己设定的,这个肯定没问题。

点评

楼主你好,我在Qt使用UDP通信出现一个问题。 本来是准备用UDP做一个服务器,在bind了本地ip和端口之后,write的数据都会被自己获取而客户端收不到服务器数据 这种有什么办法解决吗? ps:我客户端和服务器都在同一  详情 回复 发表于 2020-3-21 13:16
回复

使用道具 举报

累计签到:256 天
连续签到:1 天
2020-3-21 13:16:28 显示全部楼层
huoyl 发表于 2018-11-19 14:47
做到了,问题也解决了,贴吧解决,接收客户端消息需要客户端知道服务端IP和端口,作为服务端IP是固定的, ...


楼主你好,我在Qt使用UDP通信出现一个问题。
本来是准备用UDP做一个服务器,在bind了本地ip和端口之后,write的数据都会被自己获取而客户端收不到服务器数据
这种有什么办法解决吗?
ps:我客户端和服务器都在同一个电脑上测试,同样的ip和端口
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

公告
可以关注我们的微信公众号yafeilinux_friends获取最新动态,或者加入QQ会员群进行交流:190741849、186601429(已满) 我知道了