W7500P TCP UART 예제

Dependencies:   mbed WIZnetInterface

W7500P 개발보드의 TCP 서버 예제 입니다.

텔넷포트(23)를 기본설정으로 사용중이며, DHCP를 통해 인터넷 연결설정이 됩니다.

Files at this revision

API Documentation at this revision

Comitter:
daiyukim
Date:
Tue Oct 12 06:49:09 2021 +0000
Parent:
0:02f8a386a4ae
Child:
2:97a6b36f2bc9
Commit message:
TCP_ECHO_SERVER W7500P

Changed in this revision

WIZnetInterface.lib Show annotated file Show diff for this revision Revisions of this file
main.cpp Show annotated file Show diff for this revision Revisions of this file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/WIZnetInterface.lib	Tue Oct 12 06:49:09 2021 +0000
@@ -0,0 +1,1 @@
+http://developer.mbed.org/teams/WIZnet/code/WIZnetInterface/#c91884bd2713
--- a/main.cpp	Mon Oct 16 02:20:05 2017 +0000
+++ b/main.cpp	Tue Oct 12 06:49:09 2021 +0000
@@ -1,14 +1,60 @@
-// Print "Hello World" to the PC
-
-#include "mbed.h"
-
-Serial pc(USBTX, USBRX);
-
-int main() {
-    pc.baud(115200);
-    
-    
-    
-    pc.printf("Hello World\n");
-    
-}
+#include "mbed.h"
+#include "EthernetInterface.h"
+
+#define ECHO_SERVER_PORT   23
+
+Serial pc(USBTX, USBRX);
+
+int main (void) 
+{
+    pc.baud(115200);
+    
+    pc.printf("Hello World\n");    
+    pc.printf("Wait a second...\r\n");
+    
+    uint8_t mac_addr[6] = {0x00, 0x08, 0xDC, 0x00, 0x01, 0x02}; 
+    EthernetInterface eth;
+    eth.init(mac_addr); //Use DHCP
+    eth.connect();
+    pc.printf("Server IP Address is %s\r\n", eth.getIPAddress());
+    
+    TCPSocketServer server;
+    server.bind(ECHO_SERVER_PORT);
+    server.listen();
+    
+    while (true) 
+    {
+        pc.printf("Wait for new connection...\r\n");
+        TCPSocketConnection client;
+        server.accept(client);
+        client.set_blocking(false, 15000); // Timeout after (1.5)s
+        
+        pc.printf("Connection from: %s\r\n", client.get_address());
+        char buffer[256];
+        while (true) {
+            int n = client.receive(buffer, sizeof(buffer));
+            if (n <= 0) break;
+            
+            // print received message to terminal
+            buffer[n] = '\0';
+            pc.printf("Received message from Client :'%s'\r\n",buffer);
+            
+            // reverse the message
+            char temp;
+            for(int f = 0, l = n-1; f<l; f++,l--){
+                temp = buffer[f];
+                buffer[f] = buffer[l];
+                buffer[l] = temp;
+                }
+            
+            // print reversed message to terminal
+            pc.printf("Sending message to Client: '%s'\r\n",buffer);
+            
+            // Echo received message back to client
+            client.send_all(buffer, n);
+            if (n <= 0) break;
+        }        
+        client.close();
+    }
+}
+