Job Management Partner 1/File Transmission Server/FTP Description, Reference and Operator's Guide

[Contents][Index][Back][Next]


How to use the library

You use the JP1/FTP API library when you use the file transmission function of JP1/FTP from a user program.

The JP1/FTP API library enables you to do the following:

Prerequisites for using the functions

To use the functions provided by JP1/FTP, you need the following:

The following languages are supported for user programs:

The JP1/FTP API library requires the following compilers:

Table 7-1 Compilers required by the JP1/FTP API library

OS Compiler Header file Import library
Windows Server 2003 Visual C++ 4.0 apihead.h FTSFTP40.lib
Visual C++ 5.0 apihead.h FTSFTP50.lib
Visual C++ 6.0 apihead.h FTSFTP.lib
Visual Studio 2005 (SP1) apihead.h FTSFTP80.lib
Visual Studio 2008 apihead.h FTSFTP90.lib
Windows Server 2003 (IPF) Platform SDK February 2003 apihead.h FTSFTP.lib
Visual Studio 2005 (SP1) apihead.h FTSFTP80.lib
Visual Studio 2008 apihead.h FTSFTP90.lib
Windows Server 2008 Visual Studio 2005 (SP1) apihead.h FTSFTP80.lib
Visual Studio 2008 apihead.h FTSFTP90.lib
Windows Server 2008 (IPF) Visual Studio 2005 (SP1) apihead.h FTSFTP80.lib
Visual Studio 2008 apihead.h FTSFTP90.lib

For the header file and import library, use the files provided by JP1/FTP that are appropriate for your OS. For the storage locations, see A. List of Files and Directories.

Setting up an environment

Setting services

Set the JP1/FTP client's service name as ftsc. For details, see 2.2.2 Setting the port numbers.

Setting hosts

Set the host name and IP address of the host on which the client's JP1/FTP program is running. Specify this host name in the first argument of fts_ftp_open() and the transmission information structure.

Add the following line to OS-installation-directory\system32\drivers\etc\HOSTS:

 
xxx.xxx.xxx.xxx      yyyyyy
 

Legend:
xxx.xxx.xxx.xxx: IP address
yyyyyy: Host name

Coding

Specifying the transmission information

To register a file transmission request, you set the registered transmission card name and the address of the transmission information structure in the arguments of fts_ftp_syn_request_ex() and fts_ftp_asyn_request_ex().

typedef struct _FTS_FTP_API_DATA_EX {
    char cardname[20+1];
    char host[256+1];
    unsigned int portnum;
    char username[50+1];
    char password[50+1];
    int type;
    int cmd;
    int mode;
    char quote[300+1];
    char localname[260+1];
    char remotename[260+1];
    char end_program[260+1];
    char abend_program[260+1];
    char comment[80+1];
    int fsize;
    char reserve[1240];     /*Reserved area*/
} FTS_FTP_API_DATA_EX;
 

Note
Make sure that a char-type variable value ends with \0.

Obtaining transmission-end information

You can obtain the termination information for transmission requests registered by fts_ftp_syn_request_ex() and fts_ftp_asyn_request_ex().

typedef struct _FTS_FTP_API_RETDATA_EX {
  /* Data when transmission was successful */
  int trans_status;              /* Transmission end status:
                                    success (TRANS_SUCCESS) */
                                 /* Transmission end status:
                                    failure (TRANS_FAILURE) */
  char cardname[20+1];           /* Card name */
  unsigned long trno;            /* Transmission number */
  unsigned long trcno;           /* Connection number */
 
  /* Data when transmission was successful */
  unsigned long trans_size;      /* Transmitted data size */
 
  /* Data when transmission (compressed) was successful */
  unsigned long trans_size_comp; /* Transmitted data size
                                    after compression */
 
  /* Data when transmission failed */
  int ab_kind;                   /* System call error
                                    (FTS_ERR_SYSTEM) */
                                 /* Logical error
                                    (FTS_ERR_LOGIC) */
                                 /* Protocol error
                                    (FTS_ERR_PROTOCOL) */
  char ab_place[8];              /* Location of error */
  char ab_func[32];              /* Name of module resulting
                                    in error */
  char ab_system[32];            /* System call name */
  int ab_syskind;       /* System call type */
                        /* Win32 API(FTS_SYSKIND_WIN32) */
                        /* C runtime(FTS_SYSKIND_CRUNTIME) */
                        /* WinSock API(FTS_SYSKIND_WINSOCK) */
  unsigned long ab_errno;        /* Error number */
  char ab_promes[256];           /* Protocol message (error) */
 
  /* Data when transmission of more than 4 gigabytes of */
  /* data was successful  */
  DWORD trans_size_Low;      /* Transmitted data size (value
                                of the trailing 32 bits). */
  LONG trans_size_High;      /* Transmitted data size (value
                                of the leading 32 bits). */
 
  /* Data when transmission of more than 4 gigabytes */
  /* of data (compressed) was successful             */
  DWORD trans_size_comp_Low; /* Transmitted data size 
                                after compression (value
                                of the leading 32 bits). */
  LONG trans_size_comp_High; /* Transmitted data size 
                                after compression (value
                                of the trailing 32 bits). */
 
  char reserve[1668];     /* Reserved area */
} FTS_FTP_API_RETDATA_EX;
 
typedef struct _FTS_FTP_API_RETDATA_EX {
  /* Data when transmission was successful */
  int trans_status;              /* Transmission end status:
                                    success (TRANS_SUCCESS) */
                                 /* Transmission end status:
                                    failure (TRANS_FAILURE) */
  char cardname[20+1];           /* Card name */
  unsigned long trno;            /* Transmission number */
  unsigned long trcno;           /* Connection number */
 
  /* Data when transmission was successful */
  __int64 trans_size;        /* Transmitted data size */
 
  /* Data when transmission (compressed) was successful */
  __int64 trans_size_comp;       /* Transmitted data size
                                    after compression */
 
  /* Data when transmission failed */
  int ab_kind;                   /* System call error
                                   (FTS_ERR_SYSTEM) */
                                 /* Logical error
                                    (FTS_ERR_LOGIC) */
                                 /* Protocol error
                                    (FTS_ERR_PROTOCOL) */
  char ab_place[8];              /* Location of error */
  char ab_func[32];              /* Name of module resulting
                                    in error */
  char ab_system[32];            /* System call name */
  int ab_syskind;       /* System call type */
                        /* Win32 API(FTS_SYSKIND_WIN32) */
                        /* C runtime(FTS_SYSKIND_CRUNTIME) */
                        /* WinSock API(FTS_SYSKIND_WINSOCK) */
  unsigned long ab_errno;      /* Error number */
  char ab_promes[256];         /* Protocol message (error) */
  char reserve[1684];          /* Reserved area */
} FTS_FTP_API_RETDATA_EX;
 

Linking

When you create programs using the library functions, you must link FTSFTP.LIB.

Notes about using libraries

[Contents][Back][Next]


[Trademarks]

All Rights Reserved. Copyright (C) 2010, Hitachi, Ltd.