Skip to content

Latest commit

 

History

History

tftp_client

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Overview

Trivial File Transfer Protocol (TFTP) is a simple lockstep File Transfer Protocol based on UDP, and is designed to get a file from or put a file onto a remote host.

This TFTP client sample application for Zephyr implements the TFTP client library and establishes a connection to a TFTP server on standard port 69.

The source code for this sample application can be found at: :zephyr_file:`samples/net/tftp_client`.

Requirements

  • networking_with_eth_qemu, networking_with_qemu or networking_with_native_sim
  • Linux machine

Building and Running

There are configuration files for various setups in the samples/net/tftp_client directory:

  • prj.conf This is the standard default config.

Build the tftp-client sample application like this:

The easiest way to setup this sample application is to build and run it as a native_sim application or as a QEMU target using the default configuration prj.conf. This requires a small amount of setup described in networking_with_eth_qemu, networking_with_qemu and networking_with_native_sim.

Build the tftp-client sample application for native_sim <native_sim> like this:

Download and run a TFTP server (like TFTPd), then create file1.bin (with data) and newfile.bin.

Please note that default IP server address is 192.0.2.2 and default port is 69. To specify an IP server address and/or port, change configurations in prj.conf:

CONFIG_TFTP_APP_SERVER="10.0.0.10"
CONFIG_TFTP_APP_PORT="70"

To connect to server using hostname, enable DNS resolver by changing these two configurations in prj.conf:

CONFIG_DNS_RESOLVER=y
CONFIG_TFTP_APP_SERVER="my-tftp-server.org"

Sample output

Sample run on native_sim platform with TFTP server on host machine Launch net-setup.sh in net-tools .. code-block:: console

net-setup.sh

<inf> net_config: Initializing network
<inf> net_config: IPv4 address: 192.0.2.1
<inf> net_tftp_client_app: Run TFTP client
<inf> net_tftp_client_app: Received data:
        74 65 73 74 74 66 74 70  66 6f 72 7a 65 70 68 79 |testtftp forzephy
        72 0a                                            |r.
<inf> net_tftp_client_app: TFTP client get done
<inf> net_tftp_client_app: TFTP client put done