![](/media/cache/profiles/9ed695254285a3b7379aa3e2694489e3.jpg.50x50_q85.jpg)
DHCP and TCP Server, Chat program
Dependencies: WIZnetInterface mbed
Revision 0:893f22e4a170, committed 2015-07-06
- Comitter:
- embeddist
- Date:
- Mon Jul 06 04:53:20 2015 +0000
- Commit message:
- DHCPChatServer
Changed in this revision
diff -r 000000000000 -r 893f22e4a170 WIZnetInterface.lib --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/WIZnetInterface.lib Mon Jul 06 04:53:20 2015 +0000 @@ -0,0 +1,1 @@ +https://developer.mbed.org/teams/WIZnet/code/WIZnetInterface/#d8773cd4edc5
diff -r 000000000000 -r 893f22e4a170 main.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/main.cpp Mon Jul 06 04:53:20 2015 +0000 @@ -0,0 +1,79 @@ +#include "mbed.h" +#include "EthernetInterface.h" + +#define ECHO_SERVER_PORT 23 // telnet defaults to port 23 + +DigitalOut myled(LED1); + +// Initialize the Ethernet client library +EthernetInterface eth; + +int main() { + // Enter a MAC address for your controller below. + uint8_t mac_addr[6] = {0x00, 0x08, 0xDC, 0x00, 0x01, 0x02}; + + // initializing MAC address + eth.init(mac_addr); + + // Check Ethenret Link + if(eth.link() == true) + printf("- Ethernet PHY Link-Done \r\n"); + else + printf("- Ethernet PHY Link- Fail\r\n"); + + // Start Ethernet connecting: Trying to get an IP address using DHCP + if ( eth.connect() < 0 ) + printf("Fail - Ethernet Connecing"); + else + { + // Print your local IP address: + printf("IP=%s\n\r",eth.getIPAddress()); + printf("MASK=%s\n\r",eth.getNetworkMask()); + printf("GW=%s\n\r",eth.getGateway()); + } + + TCPSocketServer server; + server.bind(ECHO_SERVER_PORT); + server.listen(); + + while (true) { + printf("\nWait for new connection...\r\n"); + TCPSocketConnection client; + server.accept(client); + //client.set_blocking(false, 1500); // Timeout after (1.5)s + + printf("Connection from: %s\r\n", client.get_address()); + char buffer[256]; + while (true) { + int n = client.receive(buffer, sizeof(buffer)); + if (n <= 0) break; + + // print received message to terminal + buffer[n] = '\0'; + printf("Received message from Client :'%s'\r\n",buffer); + + // reverse the message + char temp; + for(int f = 0, l = n-1; f<l; f++,l--){ + temp = buffer[f]; + buffer[f] = buffer[l]; + buffer[l] = temp; + } + + // print reversed message to terminal + printf("Sending message to Client: '%s'\r\n",buffer); + + // Echo received message back to client + client.send_all(buffer, n); + if (n <= 0) break; + } + + client.close(); + + //led blinky + myled = 1; + wait(0.2); + myled = 0; + wait(0.2); + } +}
diff -r 000000000000 -r 893f22e4a170 mbed.bld --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mbed.bld Mon Jul 06 04:53:20 2015 +0000 @@ -0,0 +1,1 @@ +http://mbed.org/users/mbed_official/code/mbed/builds/7cff1c4259d7 \ No newline at end of file