A Bit funky still
Dependencies: EthernetInterface mbed-rtos mbed
Diff: main.cpp
- Revision:
- 1:9a65c6d76db0
- Parent:
- 0:337d7fbe5920
--- a/main.cpp Wed Apr 20 08:57:07 2016 +0000 +++ b/main.cpp Wed Apr 20 09:47:18 2016 +0000 @@ -3,31 +3,22 @@ #define ECHO_SERVER_PORT 7 +DigitalOut heartbeatLed(LED_GREEN); +DigitalOut myled(LED_RED); -int main (void) -{ - DigitalOut myled(LED1); - printf("Wait a second...\r\n"); - //uint8_t mac_addr[6] = {0x00, 0x08, 0xDC, 0x00, 0x01, 0x02}; - static const char* mbedIp = "192.168.64.232"; //IP - static const char* mbedMask = "255.255.255.0"; // Mask - static const char* mbedGateway = "192.168.64.1"; //Gateway - - EthernetInterface eth; - eth.init(mbedIp, mbedMask, mbedGateway); //Use DHCP - eth.connect(); - //printf("Server IP Address is %s\r\n", eth.getIPAddress()); +void server_thread(void const* arg) { TCPSocketServer server; + + server.set_blocking (true); server.bind(ECHO_SERVER_PORT); - server.listen(); - + server.listen(1); while (true) { //printf("Wait for new connection...\r\n"); TCPSocketConnection client; server.accept(client); - client.set_blocking(false, 15000); // Timeout after (1.5)s + client.set_blocking(false, true); // Timeout after (1.5)s //printf("Connection from: %s\r\n", client.get_address()); char buffer[256]; @@ -40,28 +31,39 @@ }else{ myled=0; } - // 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; -// } + sprintf(buffer, "Hi Alisha.How are u?"); - // 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(); } +} + + +int main (void) +{ + + //printf("Wait a second...\r\n"); + //uint8_t mac_addr[6] = {0x00, 0x08, 0xDC, 0x00, 0x01, 0x02}; + static const char* mbedIp = "192.168.64.232"; //IP + static const char* mbedMask = "255.255.255.0"; // Mask + static const char* mbedGateway = "192.168.64.1"; //Gateway + + EthernetInterface eth; + eth.init(mbedIp, mbedMask, mbedGateway); //Use DHCP + eth.connect(); + //printf("Server IP Address is %s\r\n", eth.getIPAddress()); + + Thread server(&server_thread); + + while(true){ + Thread::wait(1000); + // Heartbeat. + // The board systematically crashes after a low number of sends from a client, + // e.g. ~10 times 1000 bytes, ~2-3 times 10000 bytes, etc. + heartbeatLed = !heartbeatLed; + } }