连接超时+ SSL连接+ TCPIP + Indy10.5.5

时间:2012-10-16 14:45:17

标签: delphi openssl delphi-2010 indy

我开发了一个使用SSL使用TCP / IP组件将文件客户端发送到服务器的应用程序。

在服务器端发送大文件时发生错误连接超时

服务器端(SSL)

   idTCPServer1.IOHandler := IdServerIOHandlerSSLOpenSSL1;
   OnExecute
      Acontext.Connection.IOHandler.LargeStream := True;
      Acontext.Connection.IOHandler.ReadStream(filestream,Filesize);  // Error is occurred here.
   End;

客户端(SSL)

   idTCPClient1.IOHandler := IdSSLIOHandlerSocketOpenSSL1;
   idTCPClient1.IOHandler.LargeStream := True;
   idTCPClient1.IOHandler.WriteStream(fms,-1,True);

客户与客户之间建立了连接。服务器。在一段时间后发送文件时连接超时错误显示在服务器&在客户端应用程序转到无响应。

另一种情况是我连接客户端&服务器为正常使用IdIOHandlerStack1(在客户端)和服务器端不分配任何处理程序。文件传输成功,没有任何问题。

我正在使用Delphi2010& Indy10.5.5,DLL版本是0.9.8.18

任何人指导我

1 个答案:

答案 0 :(得分:0)

没有WriteStream()方法,而TStream方法存在Write()重载。

您告诉Write()将流大小作为64位整数发送,但您没有告诉ReadStream()读取流大小,因此您可能已阅读完整的64位文件预先使用ReadInt64()确定尺寸,对吗?

此外,10.5.5是Indy的过时版本。目前的版本是10.5.9。 Try upgrading以确保您拥有所有最新的错误修复程序等,然后报告您是否还有问题。