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>
Revision 2:922ee74b0192, committed 2014-02-15
- Comitter:
- edodm85
- Date:
- Sat Feb 15 13:43:36 2014 +0000
- Parent:
- 1:67817eb9bb9e
- Child:
- 3:af736e1af4a9
- Commit message:
- Fixed
Changed in this revision
--- a/main.cpp Thu Jan 16 13:28:17 2014 +0000
+++ b/main.cpp Sat Feb 15 13:43:36 2014 +0000
@@ -1,7 +1,7 @@
/*
* Author: Edoardo De Marchi
- * Date: 15/01/14
- * Notes: OV7670 + FIFO AL422B camera test (TCP Ethernet)
+ * Date: 15/02/14
+ * Notes: Checks the Ethernet cable
*/
@@ -13,6 +13,7 @@
DigitalOut led2(LED2);
DigitalOut led3(LED3);
DigitalOut led4(LED4);
+
//ETHERNET
#define ECHO_SERVER_PORT 2000
@@ -68,6 +69,8 @@
eth_status = true;
}else
{
+ eth_status = false;
+ eth_status_temp = true;
led1 = 0;
}
--- a/mbed-rtos.lib Thu Jan 16 13:28:17 2014 +0000 +++ b/mbed-rtos.lib Sat Feb 15 13:43:36 2014 +0000 @@ -1,1 +1,1 @@ -http://mbed.org/users/mbed_official/code/mbed-rtos/#29007aef10a4 +http://mbed.org/users/mbed_official/code/mbed-rtos/#f88660a9bed1
--- a/mbed.bld Thu Jan 16 13:28:17 2014 +0000 +++ b/mbed.bld Sat Feb 15 13:43:36 2014 +0000 @@ -1,1 +1,1 @@ -http://mbed.org/users/mbed_official/code/mbed/builds/a9913a65894f \ No newline at end of file +http://mbed.org/users/mbed_official/code/mbed/builds/869cf507173a \ No newline at end of file
