UDP Seerver LCinet
Dependencies: SDFileSystem WIZnetInterface mbed
Fork of UDPEchoServer by
main.cpp
00001 #include "mbed.h" 00002 #include "EthernetInterface.h" 00003 #include "SDFileSystem.h" 00004 00005 00006 //#define UDPServer 1 00007 #define UDPClinet 1 00008 00009 #if defined(UDPServer) 00010 #define MAC "\x00\x08\xDC\x11\x34\x78" 00011 #define IP "192.168.99.100" 00012 #define MASK "255.255.255.0" 00013 #define GATEWAY "192.168.99.1" 00014 #endif 00015 #if defined(UDPClinet) 00016 #define MAC "\x00\x08\xDC\x11\x34\x90" 00017 #define IP "192.168.99.101" 00018 #define MASK "255.255.255.0" 00019 #define GATEWAY "192.168.99.1" 00020 #endif 00021 const char* ECHO_SERVER_ADDRESS = "192.168.99.100"; 00022 const int ECHO_SERVER_PORT = 3000; 00023 const int ECHO_CLIENT_PORT = 2000; 00024 int main (void) { 00025 00026 EthernetInterface eth; 00027 Serial (USBTX, USBRX); 00028 eth.init((uint8_t*)MAC,IP,MASK,GATEWAY); //IP,mask,Gateway 00029 printf("Connecting\n"); 00030 eth.connect(); 00031 #if defined(UDPServer) 00032 while (true) 00033 { 00034 printf("\nServer IP Address is %s\n", eth.getIPAddress()); 00035 UDPSocket server; 00036 server.bind(ECHO_SERVER_PORT); 00037 00038 Endpoint client; 00039 char buffer[256]; 00040 while (true) { 00041 printf("\nWaiting for UDP packet...\n"); 00042 int n = server.receiveFrom(client, buffer, sizeof(buffer)); 00043 if (n <= 0) break; 00044 // print received message to terminal 00045 //buffer[n] = '\0'; 00046 00047 printf("Received packet from: %s\n", client.get_address()); 00048 printf("Packet contents : '%s'\n",buffer); 00049 printf("Sending Packet back to Client\n"); 00050 server.sendTo(client, buffer, n); 00051 if (n <= 0) break; 00052 } 00053 } 00054 #else //Client 00055 printf("\nClient IP Address is %s \n", eth.getIPAddress()); 00056 00057 UDPSocket sock; 00058 sock.init(); 00059 sock.bind(ECHO_CLIENT_PORT); 00060 Endpoint echo_server; 00061 echo_server.set_address(ECHO_SERVER_ADDRESS, ECHO_SERVER_PORT); 00062 00063 char out_buffer[] = "Hello World"; 00064 printf("Sending message '%s' to server (%s)\n",out_buffer,ECHO_SERVER_ADDRESS); 00065 printf("ip= %s,port=%d\r\n",echo_server.get_address(),echo_server.get_port()); 00066 sock.sendTo(echo_server, out_buffer, sizeof(out_buffer)); 00067 00068 char in_buffer[256]; 00069 // int n = sock.receiveFrom(echo_server, in_buffer, sizeof(in_buffer)); 00070 00071 // in_buffer[n] = '\0'; 00072 //printf("Received message from server: '%s'\n", in_buffer); 00073 00074 sock.close(); 00075 00076 eth.disconnect(); 00077 while(1) {} 00078 #endif 00079 }
Generated on Tue Jul 19 2022 05:48:08 by 1.7.2