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

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

4
回复
1293
查看
[复制链接]
累计签到: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 发过去就好了, ...
回复

使用道具 举报

累计签到:469 天
连续签到: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是固定的,端口是自己设定的,这个肯定没问题。
回复

使用道具 举报

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

关于进行手机实名认证的紧急通知!
按照有关部门要求,论坛类网站必须完成手机实名认证才可以进行发帖等操作。希望大家积极配合,为创建一个和谐文明的社区而贡献自己的力量。我们会对会员的隐私进行严格保密,对大家造成的不便深表歉意! 我知道了