hoe@
2021-09-29 16:08
采纳率: 100%
浏览 57

QT使用循环语句进行文件传输

文件传输使用循环语句进行多次连接和发送时程序就会无响应,然后就会出现图片中的问题,要怎么解决才好?

img

  • 好问题 提建议
  • 收藏

4条回答 默认 最新

  • qfl_sdu 2021-09-29 16:14
    已采纳

    为什么要多次连接?连接一次成功后,用得到的socket发送就可以了。如果多次连接,加上你多次调试程序,会把端口的链接数占满的,链接数占满后再去连接就会失败。

    而且,图片中明确告诉你了,“正在连接或已连接到192....时又调用了connecttohost”,不就是这个意思吗

    已采纳该答案
    评论
    解决 无用
    打赏 举报
  • 神仙别闹 2021-09-29 16:12

    如果可以确保自己的QT程序写的没有什么问题,那 exited with code 0最可能的原因就是自己的工程路径中有中文,所以要注意QT文件路径中不要有中文。

    如果是程序运行过程中异常退出了,有可能是数据计算量太大,把程序卡死了,这时候可以用qDebug()来查看到底是哪里除了问题。当然如果发现程序运行结果和自己想的效果不一样也可以用qDebug()来看有没有进入指定的函数。

    //头文件
    #include <QDebug>
    //函数
    qDebug()<<"hello";
    
    评论
    解决 无用
    打赏 举报
  • 快乐鹦鹉 2021-09-29 16:13

    文件已经打开,你是怎么传输的呢,重复传输文件了?之前的文件没有关闭

    评论
    解决 无用
    打赏 举报
  • kof98765 2021-09-30 09:09

    你这个很明显是因为打开次数太多,又不关闭导致的,文件一般打开一次,不断读写就好,读写完再关闭
    连接也是一样,每次连接成功,将数据写完,可以关闭,或者继续写,总之不管写没写完,重连之前都是要关闭的
    做事情要有始有终,写代码也是一样的,如果没有终,大概率是人家帮你做了,你不知道

    评论
    解决 无用
    打赏 举报

相关推荐 更多相似问题