Qt WebSocket 遇到 TLS initialization Failed

问题现象如下:
在我自己电脑上没有任何问题,打包程序给别人之后就出现这个问题。

完整错误信息如下所示:

QSslSocket::startServerEncryption: TLS initialization failed

在网上查来查去的,都说是将OpenSSL的两个dll:libeay32.dll和ssleay32.dll复制到exe的运行目录中,但是打包之后在别人电脑上还是同样的问题。

憋着没法,把自己电脑上的这两个库全部删了,结果我自己电脑上还是没有问题,可以正常运行。

之后,网上找到有说安装OpenSSL库的,抱着试一试的态度,安装了Win64OpenSSL-1_1_1h这个包,打开目录发现里面的dll的名字不一样,分别是:libcrypto-1_1-x64.dll和libssl-1_1-x64.dll,于是乎又开始找电脑上是否有这两个库,结果在C盘中还真有,删除掉之后,发现自己电脑上运行就出问题了,将那两个dll复制到exe所在目录,运行问题消失,但是打包到别人电脑上,还是不行,暂时不知道原因。

最后,没办法处理了,只有将QWebSocket的连接方式改成不要SSL的。这里出现了一个新问题,就是WebSocket的发送不能跨线程,必须在同一个线程中执行,所以改了一下代码结构。

理论上在别人电脑上安装Win64OpenSSL-1_1_1h是可以解决问题的,但是总不能让客户自己去下载这个库吧,由于安全要求没那么严格,所以直接去掉了SSL库。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值