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
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>
- include <stdio.h>
- include <stdlib.h>
- include <unistd.h>
- include <string.h>
- include <sys/types.h>
- include <sys/socket.h>
- include <netinet/in.h>
- 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>
History
This acts as a server, when started it displays it's own IP address, when a client connects it displays the connecting IP address, it then displays the data sent and returns it to the client.
2015-01-11, by danielashercohen [Sun, 11 Jan 2015 05:36:29 +0000] rev 4
This acts as a server, when started it displays it's own IP address, when a client connects it displays the connecting IP address, it then displays the data sent and returns it to the client.
Fixed the 2nd disconnection of the cable
2014-02-15, by edodm85 [Sat, 15 Feb 2014 13:48:46 +0000] rev 3
Fixed the 2nd disconnection of the cable
Fixed
2014-02-15, by edodm85 [Sat, 15 Feb 2014 13:43:36 +0000] rev 2
Fixed
Added the static keyword to the function mii_read_data()
2014-01-16, by edodm85 [Thu, 16 Jan 2014 13:28:17 +0000] rev 1
Added the static keyword to the function mii_read_data()
First Version
2014-01-15, by edodm85 [Wed, 15 Jan 2014 20:37:57 +0000] rev 0
First Version