Super lightweight, not at all robust, TFTP server for FRDM-K64F eval board.

Dependencies:   EthernetInterface mbed-rtos mbed

Fork of FRDM_K64F-Ethernet by Rangel Alvarado

Super lightweight, not at all robust, TFTP server for FRDM-K64F eval board. This tool supports read-only access to two files. It does not support NACK responses or timeouts. The tool is intended for use by our test department to check out Ethernet functionality on our main processor board.

Committer:
issaiass
Date:
Mon Sep 22 02:34:12 2014 +0000
Revision:
0:bbc9cfdee3bc
Child:
1:2944c0d494ff
This example uses the FRDM-K64F board Ethernet interface with a static ip address connected directly to the PC

Who changed what in which revision?

UserRevisionLine numberNew contents of line
issaiass 0:bbc9cfdee3bc 1 #include "mbed.h"
issaiass 0:bbc9cfdee3bc 2 #include "EthernetInterface.h"
issaiass 0:bbc9cfdee3bc 3
issaiass 0:bbc9cfdee3bc 4 #define MBED_DEV_IP "192.168.0.52"
issaiass 0:bbc9cfdee3bc 5 #define MBED_DEV_MASK "255.255.255.0"
issaiass 0:bbc9cfdee3bc 6 #define MBED_DEV_GW "0.0.0.0"
issaiass 0:bbc9cfdee3bc 7 #define ECHO_SERVER_PORT 5000
issaiass 0:bbc9cfdee3bc 8
issaiass 0:bbc9cfdee3bc 9
issaiass 0:bbc9cfdee3bc 10 int main (void) {
issaiass 0:bbc9cfdee3bc 11 EthernetInterface eth;
issaiass 0:bbc9cfdee3bc 12 eth.init(MBED_DEV_IP, MBED_DEV_MASK, MBED_DEV_GW); //Assign a device ip, mask and gateway
issaiass 0:bbc9cfdee3bc 13 eth.connect();
issaiass 0:bbc9cfdee3bc 14 printf("IP Address is %s\n", eth.getIPAddress());
issaiass 0:bbc9cfdee3bc 15
issaiass 0:bbc9cfdee3bc 16 TCPSocketServer server;
issaiass 0:bbc9cfdee3bc 17 server.bind(ECHO_SERVER_PORT);
issaiass 0:bbc9cfdee3bc 18 server.listen();
issaiass 0:bbc9cfdee3bc 19
issaiass 0:bbc9cfdee3bc 20 while (true) {
issaiass 0:bbc9cfdee3bc 21 printf("\nWait for new connection...\n");
issaiass 0:bbc9cfdee3bc 22 TCPSocketConnection client;
issaiass 0:bbc9cfdee3bc 23 server.accept(client);
issaiass 0:bbc9cfdee3bc 24 client.set_blocking(false, 1500); // Timeout after (1.5)s
issaiass 0:bbc9cfdee3bc 25
issaiass 0:bbc9cfdee3bc 26 printf("Connection from: %s\n", client.get_address());
issaiass 0:bbc9cfdee3bc 27 char buffer[256];
issaiass 0:bbc9cfdee3bc 28 while (true) {
issaiass 0:bbc9cfdee3bc 29 int n = client.receive(buffer, sizeof(buffer));
issaiass 0:bbc9cfdee3bc 30 if (n <= 0) break;
issaiass 0:bbc9cfdee3bc 31
issaiass 0:bbc9cfdee3bc 32 client.send_all(buffer, n);
issaiass 0:bbc9cfdee3bc 33 if (n <= 0) break;
issaiass 0:bbc9cfdee3bc 34 }
issaiass 0:bbc9cfdee3bc 35
issaiass 0:bbc9cfdee3bc 36 client.close();
issaiass 0:bbc9cfdee3bc 37 }
issaiass 0:bbc9cfdee3bc 38 }