programme
Dependencies: EthernetInterface mbed-rtos mbed
main.cpp
- Committer:
- Starz
- Date:
- 2015-06-16
- Revision:
- 0:8a6f406dd109
File content as of revision 0:8a6f406dd109:
#include "mbed.h" #include "EthernetInterface.h" EthernetInterface eth; char ip[] = "192.168.1.10"; char masque[] = "255.255.255.0"; char passerelle[] = "192.168.1.255"; TCPSocketServer server; TCPSocketConnection client; int serveur_port = 2000; DigitalOut myled(LED1); Serial pc(USBTX, USBRX); int main() { bool client_connected = false; char buffer [100]; pc.printf("Hello, I'm happy my Serial port is ok.\n\r"); if (eth.init(ip,masque,passerelle)!=0) { pc.printf("ERREUR INIT ETHERNET\r\n"); return -1; } if (eth.connect()!=0) { pc.printf("ERREUR CONNECT\r\n"); return -1; } pc.printf("L addresse Ip est %s\r\n", eth.getIPAddress()); pc.printf("IP est OK, vous pouvez continuer\r\n"); if (server.bind (serveur_port)!=0) { pc.printf("Erreur Tcp bind\r\n"); return -1; } pc.printf("Succes Tcp Bind\r\n"); if (server.listen()!=0){ pc.printf("ERREUR Tcp Listen\r\n"); return -1; } pc.printf("Succes Tcp listen\r\n"); pc.printf("Connectez un client Tcp port 2000...\r\n"); client.set_blocking(false, 100); // Timeout after (100ms) while(1) { if (client_connected==false) { if (server.accept (client)!=0){ pc.printf("ERREUR connexion client\r\n"); // erreur return -1; } client_connected = true; pc.printf("Client Tcp connecte\r\n"); pc.printf("Adresse Ip client %s\r\n",client.get_address()); client.send("Hello\r\n",strlen("Hello\r\n")); } else { if ( client.is_connected() ) { if (pc.readable()) // interface virtuel serie recoit donnees { buffer[0] = pc.getc(); client.send(buffer,1); } int nbcaractere = client.receive(buffer,sizeof(buffer)); if (nbcaractere>0) // interface Ethernet recoit donnees { buffer[nbcaractere] = 0; pc.printf("%s",buffer); } } else { client_connected = false; client.close(); pc.printf("Client deconnecte\r\n"); pc.printf("Connectez un client Tcp port 2000...\r\n"); } } } }