A simple example how to receive ethernet packages and display them over stdout with an hexviewer

Dependencies:   mbed

Revision:
0:2f61a610595e
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main.cpp	Wed Dec 09 11:36:29 2009 +0000
@@ -0,0 +1,42 @@
+/* mbed Ethernet class demo
+ * Copyright (c) 2009 rmeyer
+ * Released under the MIT License: http://mbed.org/license/mit
+ */
+
+#include "mbed.h"
+#include "hexview.h"
+
+DigitalOut led(LED4);
+Ethernet eth;
+
+unsigned short htons(unsigned short n) {               // Host short to network shor
+  return ((n & 0xff) << 8) | ((n & 0xff00) >> 8);      // Byte swapping
+}
+
+void show(char *buf, int size) {
+    printf("ETH:  Src:  %02hX:%02hX:%02hX:%02hX:%02hX:%02hX  ",
+            buf[6], buf[7], buf[8], buf[9], buf[10], buf[11]);
+    printf("Dst:  %02hX:%02hX:%02hX:%02hX:%02hX:%02hX   ",
+            buf[0], buf[1], buf[2], buf[3], buf[4], buf[5]);
+  
+    unsigned int type = (buf[12] << 8) | (buf[13]);
+    printf("Type: %hd\n", htons( type));
+    
+    hexview2(buf, size);
+}
+
+
+int main() {
+    char buffer[0x300];
+    int size = 0;
+    
+    while(1) {
+        if((size = eth.receive()) != 0) {
+            eth.read(buffer, size);
+            show(buffer, size);
+        }
+        
+        led = !led;
+        wait(0.2);
+    }
+}