【问题标题】:QUdpSocket problemQUdpSocket问题
【发布时间】:2010-09-01 11:36:19
【问题描述】:

我尝试使用 UDP 协议发送数据。 UDP什么时候不发送数据可以理解吗?

非常感谢。

我尝试运行到客户端的服务。他们会在一秒钟内向他们的 IP 发送一个端口号。服务器收听他们,如果他们不发送此消息,则表明客户端未连接。我这样做但我不明白他们什么时候不发送?你有什么建议

【问题讨论】:

    标签: qt networking udp


    【解决方案1】:

    您可以查看writeDatagram的结果

    将数据大小为大小的数据报发送到端口端口的主机地址地址。返回成功发送的字节数;否则返回 -1。

    然后只需检查返回数以确保发送的字节数符合您的预期

    【讨论】:

    • 非常感谢您的回答,我尝试了一个遇到客户端的服务。他们会在一秒钟内向他们的 IP 发送一个端口号。服务器收听他们,如果他们不发送此消息,则表明客户端未连接。我这样做但我不明白他们什么时候不发送?你有什么建议
    【解决方案2】:

    当然有可能,但可能很难。

    我会推荐:

    1. 验证您在调用发送数据时没有收到错误(可能您指定了错误的地址,或者套接字处于错误状态等)。
    2. 尽量少发送,也许您的数据包正在被您的本地网络堆栈丢弃。
    3. 确保您在接收端确实正确收听,也许数据包成功了,但您未能正确读取它们。
    4. 考虑防火墙/NAT 问题,与 UDP 一样。在协议方面,永远不要将连接信息作为应用程序数据包含在数据包中,因为这样它对 NAT 机器是不可见的。

    下一步可能是深入挖掘并尝试从本地网络堆栈中获取一些反馈,或者可能会嗅探网络以查看数据包是否至少某种

    【讨论】:

    • 非常感谢您的回答,我尝试了一个遇到客户端的服务。他们会在一秒钟内向他们的 IP 发送一个端口号。服务器收听他们,如果他们不发送此消息,则表明客户端未连接。我这样做但我不明白他们什么时候不发送?你有什么建议吗?
    • @ayla。谢谢。如果您觉得有帮助,请随时投票/接受答案。我不能完全按照你的描述,但也许你遇到了防火墙/NAT 问题,我也在我的列表中添加了一个项目。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多