W7500P TCP UART 예제
Dependencies: mbed WIZnetInterface
W7500P 개발보드의 TCP 서버 예제 입니다.
텔넷포트(23)를 기본설정으로 사용중이며, DHCP를 통해 인터넷 연결설정이 됩니다.
Revision 1:ea9223739b1b, committed 2021-10-12
- 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();
+ }
+}
+