W7500P TCP UART 예제
Dependencies: mbed WIZnetInterface
W7500P 개발보드의 TCP 서버 예제 입니다.
텔넷포트(23)를 기본설정으로 사용중이며, DHCP를 통해 인터넷 연결설정이 됩니다.
main.cpp
- Committer:
- daiyukim
- Date:
- 2021-10-12
- Revision:
- 4:35efc8506987
- Parent:
- 3:4bfea09eabf8
File content as of revision 4:35efc8506987:
#include "mbed.h" #include "EthernetInterface.h" #define ECHO_SERVER_PORT 23 Serial pc(USBTX, USBRX); int main (void) { pc.baud(115200); pc.printf("안녕 세상!\n"); pc.printf("잠깐만... DHCP 설정중...\r\n"); uint8_t mac_addr[6] = {0x00, 0x11, 0x22, 0x11, 0xAB, 0xAB}; //uint8_t mac_addr[6] = {0x00, 0x08, 0xDC, 0x00, 0x01, 0x02}; EthernetInterface eth; eth.init(mac_addr); //Use DHCP eth.connect(); pc.printf("서버주소: %s\r\n", eth.getIPAddress()); pc.printf("서브넷 마스크: %s\r\n", eth.getNetworkMask()); pc.printf("게이트웨이: %s\r\n", eth.getGateway()); pc.printf("맥어드레스: %s\r\n", eth.getMACAddress()); TCPSocketServer server; server.bind(ECHO_SERVER_PORT); server.listen(); while (true) { pc.printf("새로운 연결 대기중...\r\n"); TCPSocketConnection client; server.accept(client); client.set_blocking(false, 15000); // Timeout after (1.5)s pc.printf("클라이언트 연결됨: %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("클라이언트로 부터 받은 메시지:'%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("클라이언트로 메시지 보냄: '%s'\r\n",buffer); // Echo received message back to client client.send_all(buffer, n); if (n <= 0) break; } client.close(); } pc.printf("Bye Bye.\r\n"); }