Archived Forum Post

Index of archived forum posts

Question:

ChilkatLog:GetFile:DLLDate:Aug 15 2013 ChilkatVersion:9.4.1.42 Error.

Jun 11 '14 at 16:12

ChilkatLog:GetFile:DLLDate:Aug 15
2013 ChilkatVersion:9.4.1.42
UnlockPrefix:Anything for  30-daytrial
Archicature:Little Endian; 32-bit
language:IOS Objective-C
VerboseLogging:0  hcCurDate:fri, 06
Jun 2014 16:15:39 +0530 hcExpire:
11/2013 ProgressMonitoring: enabled:no
heartbeatMS:0
sendBufferSize:65536--progressMonitoring
AutoGetSizeForProgress:0
localFilename:/user
/abc/Library/Application
Support/iphone
simulator/7.0/application/3445665656
document{343454455}_0555.png
GetFileToOutput_1
getfiletooutput2_1:modeZ:0
BinaryMode:1 Passive  transfer mode
setuppassiveDataSocket2: No socket
exist for sending (2b) failed to send
PASV/EPSV  command. no longer
connected to FTP server. setup
passiveDataSocket
faild.--setupPassiveDataSocket2 
failed to setup passive data socket
for getfile
--getFileToOutput2_1--getFileToOutput_1  TotalTimeMS:Elapsed time:0 millisec
Failed. GetFile ChilkatLog.


Answer

Format the LastErrorText in "pre" tags so that it's readable...


Answer

First, you are using an old version of the library, so I recommend updating to the latest version and trying again.

If the problem persists, can you give us some more information about what you are trying to do that is failing? Maybe a code sample? All we have now is an error log.

That said, the error indicates that there is no connection to the server. So have you tested for success on previous method calls to make sure that an earlier call hasn't disconnected you from the server for some reason?


Answer

Here my code what i am doing for get the connection and write the file in document directory please have a look.

     self.chilKatFTPManager=[[CkoFtp2 alloc]init];
     self.success= [self.chilKatFTPManager UnlockComponent: @"Anything for 30-day trial"];
     if (success1 != YES) {
     [strOutput appendFormat:UNKOWNN_DOWNLOAD_ERROR,remoteFilename];
      [self showChilkatError:strOutput];
      }
    self.chilKatFTPManager.Hostname = appdelegate.strFTPHost;
    self.chilKatFTPManager.Username = strFTPUserName;
    self.chilKatFTPManager.Password = strFTPPassword;
    [self.chilKatFTPManager setSkipFinalReply:YES];
    [self.chilKatFTPManager setPassive:YES];
    [self.chilKatFTPManager setPort:[NSNumber numberWithInt:21]];
    self.success2 = [self.chilKatFTPManager Connect];
    if (success2 != YES) {
      [self showChilkatError:strOutput]; }
    else
    {
     BOOL success= [self.chilKatFTPManager GetFile:remoteFilename localPath:filePath];
    }


Answer

It appears the connection is being dropped before Passive mode can be set. Some things to try/consider:

  1. Did you upgrade to the latest version of the library and try again?
  2. Set VerboseLogging = 1 to get more information in the LastErrorText property, and then repost it here in <pre> tags.
  3. The documentation for SkipFinalReply says only to use if advised by Chilkat to do so. Are you sure your FTP server requires this property to be set?

Answer

The connection will only break for one of a few reasons: a bug in the Chilkat library, a bug in your code, bad configuration of the properties in your code, the server decides the connection should be closed for some reason, or network hardware or configuration problem.

Let's assume that your network hardware and configuration is correct. Let's also assume that your code is bug free.

That leaves a possible bug in the Chilkat library, which is why I suggested upgrading to the latest version (9.5.X). Did you do this and try again?

It also leaves bad configuration of the object properties. I asked if you were instructed to set SkipFinalReply:YES by Chilkat, since the documentation states that you should only do so if instructed. If not, have you tried with SkipFinalReply:NO?

Lastly, it's possible that the server is deciding to close the connection due to conditions that are not clear (security configuration? bug on the server?). This is why I suggested setting VerboseLogging:YES and reposting the LastErrorText contents at the point of failure, as there may be more information that will help diagnose the problem.