繁体   English   中英

64位服务器下的OpenSSL问题,同一32位(QT应用程序)下没有

[英]OpenSSL issue under 64bit server and none under same 32bit (QT app)

在将QT从4.8.5升级到5.4.0后,我们遇到了服务器端的问题。 构建在Debian wheezy(64位)下完成,也在32位机器上完成。 当我们在32位机器上启动服务器时,使用命令openssl s_client -connect xxx.xxx.xxx.xxx:4443我们收到证书的答案,但在64位机器下,没有任何事情只发出“已连接”。 两台机器都安装了openssl 1.0.0e版本,QT使用Web安装程序安装(直接复制所需的对象,因此未在机器上编译)。

另一件事,当尝试在Windows7下启动服务器时,它正在加载所需的openssl dll(32位)并且它可以工作。

我错过了什么吗?

PS在64位linux机器上编译时,QT示例也没有连接(sslechoserver&sslechoclient)

在QTcpServer :: incomingConnection中发现了问题。 在QT5.4上使用qintptr作为socketDescriptor。 保证此类型与Qt支持的所有平台上的指针大小相同。 在具有32位指针的系统上,qintptr是qint32的typedef; 在具有64位指针的系统上,qintptr是qint64的typedef。

这就是为什么它在32位而不是在64位机器上工作的原因。 (纯粹的运气)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM