Need a hint: How to build a FTP-Client

Hello!

We have a C/S System.
The Client is build with Natural for windows, the Server is MF-Natural.

If a file csv file has to be transferred to the client we currently use a
sequence of RPC-Calls to do the job. This technique works, but if
the the file is quite big, the number RPC-Calls is very high.

If we establish a FTP-Server for this job, then we need a FTP-Client
component. Is there any hint how to build a FTP-Client with Natural for windows?

Any Feedback is welcomed.
Christian

On Windows-Side you got a simple ftp-client. On command line it works like that:

ftp -s:test.txt

While test.txt contains (for example):

open hostname
username
password
get file.txt
bye

So you can write text.txt as a natural-workfile and start the ftp-command using SHCMD.

If you want Windows to be ftp-server use IIS Manager (comes with Windows Server-Editions).

Hello Matthias.

Thx for the fast reply and the hint. I will do some tests with this.

As far as I understand this hint, the execution of the file transfer
will work “as a black box”.

The current solution (based on a sequence of RPC-Calls) allows
us
a) to feed a progress-bar,
b) to “count down” the remainig records (as we know the number of
records)
c) display the transfer time

This kind of fancy information shortens the “felled” transfer time for
our users. Based on this the idea was to develop a native FTP-Client.

Nevertheless, thanks for the hint.
Christian

what version of EntireX are you using?

Are you either using Adabas 8 SVC on the mainframe or TCP/IP for communication? If so, you might try to use larger buffers and fewer messages.

With dynamic variables in Natural, you can send/receive messages up to 2gb in size, allowing you to reduce your number of RPC calls dramatically. (Of course, you need sufficient memory on both the client and the server to manage very large messages).

Windows’ ftp-client is not very comfortable. There are some modern (s)ftp-Clients (like on Linux) showing a progress bar etc. during download.