This example shows using the SeeedStudio arch pro as an Ethernet server. It will initialize the Ethernet port, display its IP address, display the IP address of connecting clients and then return data sent from the client.

Dependencies:   EthernetInterface SeeedGrayOLED USBDevice mbed-rtos mbed

Fork of Ethernet_Status_HelloWorld by Edoardo De Marchi

This mbed server example for SeeedStudio also needs a client to connect.

I compiled and ran this on my opensuse linux virtual machine but I think it should compile and run fine on most linux distrubutions and probably on OSX as well:

<codei>

  1. include <stdio.h>
  2. include <stdlib.h>
  3. include <unistd.h>
  4. include <string.h>
  5. include <sys/types.h>
  6. include <sys/socket.h>
  7. include <netinet/in.h>
  8. include <netdb.h>

void error(const char *msg) { perror(msg); exit(0); }

int main(int argc, char *argv[]) { int sockfd, portno, n; struct sockaddr_in serv_addr; struct hostent *server;

char buffer[256]; if (argc < 3) { fprintf(stderr,"usage %s hostname port\n", argv[0]); exit(0); } portno = atoi(argv[2]); sockfd = socket(AF_INET, SOCK_STREAM, 0); if (sockfd < 0) error("ERROR opening socket"); server = gethostbyname(argv[1]); if (server == NULL) { fprintf(stderr,"ERROR, no such host\n"); exit(0); } bzero((char *) &serv_addr, sizeof(serv_addr)); serv_addr.sin_family = AF_INET; bcopy((char *)server->h_addr, (char *)&serv_addr.sin_addr.s_addr, server->h_length); serv_addr.sin_port = htons(portno); if (connect(sockfd,(struct sockaddr *) &serv_addr,sizeof(serv_addr)) < 0) error("ERROR connecting"); printf("Please enter the message: "); bzero(buffer,256); fgets(buffer,255,stdin); n = write(sockfd,buffer,strlen(buffer)); if (n < 0) error("ERROR writing to socket"); bzero(buffer,256); n = read(sockfd,buffer,255); if (n < 0) error("ERROR reading from socket"); printf("%s\n",buffer); close(sockfd); return 0; } <code>

Files at this revision

API Documentation at this revision

Comitter:
edodm85
Date:
Thu Jan 16 13:28:17 2014 +0000
Parent:
0:9e8b3fd68f6c
Child:
2:922ee74b0192
Commit message:
Added the static keyword to the function mii_read_data()

Changed in this revision

eth_status.h Show annotated file Show diff for this revision Revisions of this file
--- a/eth_status.h	Wed Jan 15 20:37:57 2014 +0000
+++ b/eth_status.h	Thu Jan 16 13:28:17 2014 +0000
@@ -35,7 +35,7 @@
 }
 
     // This function returns the current value in the MII data register.
-u32_t mii_read_data()
+static u32_t mii_read_data()
 {
     return lpc_mii_read_data();  // 16-bit MRDD - address 0x2008 4030                             
 }
\ No newline at end of file