Ethernet Voice Streaming code

Dependencies:   WIZnetInterface mbed

Fork of UDPEchoServer_TEST by eunkyoung kim

Revision:
7:345b078c448a
Parent:
6:bd7f46b6fa23
Child:
8:47e9d7df0582
--- a/main.cpp	Tue May 05 20:08:42 2015 +0000
+++ b/main.cpp	Fri Aug 21 02:25:23 2015 +0000
@@ -1,27 +1,80 @@
 #include "mbed.h"
 #include "EthernetInterface.h"
+#include "SDFileSystem.h"
 
-#define ECHO_SERVER_PORT   7
+
+//#define UDPServer 1
+#define UDPClinet 1
+
+#if defined(UDPServer)
+    #define MAC     "\x00\x08\xDC\x11\x34\x78"
+    #define IP      "192.168.99.100"
+    #define MASK    "255.255.255.0"
+    #define GATEWAY "192.168.99.1"
+#endif
+#if defined(UDPClinet)
+    #define MAC     "\x00\x08\xDC\x11\x34\x90"
+    #define IP      "192.168.99.101"
+    #define MASK    "255.255.255.0"
+    #define GATEWAY "192.168.99.1"
+#endif
+const char* ECHO_SERVER_ADDRESS = "192.168.99.100";
+const int ECHO_SERVER_PORT = 7;
 
 int main (void) {
+
     EthernetInterface eth;
-    eth.init(); //Use DHCP
+    Serial (USBTX, USBRX);
+    printf("g\n");
+    eth.init((uint8_t*)MAC,IP,MASK,GATEWAY);  //IP,mask,Gateway
+    printf("Connecting\n");
     eth.connect();
-    printf("\nServer IP Address is %s\n", eth.getIPAddress());
-    
-    UDPSocket server;
-    server.bind(ECHO_SERVER_PORT);
+#if defined(UDPServer)
+    while (true) 
+    {
+        printf("\nServer IP Address is %s\n", eth.getIPAddress()); 
+        UDPSocket server;
+        server.bind(ECHO_SERVER_PORT);
     
-    Endpoint client;
-    char buffer[256];
-    while (true) {
-        printf("\nWaiting for UDP packet...\n");
-        int n = server.receiveFrom(client, buffer, sizeof(buffer));
-        buffer[n] = '\0';
-        
-        printf("Received packet from: %s\n", client.get_address());
-        printf("Packet contents : '%s'\n",buffer);
-        printf("Sending Packet back to Client\n");
-        server.sendTo(client, buffer, n);
+        Endpoint client;
+        char buffer[256];
+        while (true) {
+            printf("\nWaiting for UDP packet...\n");
+            int n = server.receiveFrom(client, buffer, sizeof(buffer));
+            if (n <= 0) break;
+            // print received message to terminal
+            //buffer[n] = '\0';
+            
+            printf("Received packet from: %s\n", client.get_address());
+            printf("Packet contents : '%s'\n",buffer);
+            printf("Sending Packet back to Client\n");
+            server.sendTo(client, buffer, n);
+            if (n <= 0) break;
+        }
     }
+#else   //Client
+    printf("\nClient IP Address is %s \n", eth.getIPAddress());
+    
+    UDPSocket sock;
+    sock.init();
+    
+    Endpoint echo_server;
+    echo_server.set_address(ECHO_SERVER_ADDRESS, ECHO_SERVER_PORT);
+    
+    char out_buffer[] = "Hello World";
+    printf("Sending  message '%s' to server (%s)\n",out_buffer,ECHO_SERVER_ADDRESS);
+    sock.sendTo(echo_server, out_buffer, sizeof(out_buffer));
+    
+    char in_buffer[256];
+    int n = sock.receiveFrom(echo_server, in_buffer, sizeof(in_buffer));
+    
+    in_buffer[n] = '\0';
+    printf("Received message from server: '%s'\n", in_buffer);
+    
+    sock.close();
+    
+    eth.disconnect();
+    while(1) {}
+#endif
 }
+