김 대유 / Mbed 2 deprecated W7500P_TCP_ECHO_SERVER

Dependencies:   mbed WIZnetInterface

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers main.cpp Source File

main.cpp

00001 #include "mbed.h"
00002 #include "EthernetInterface.h"
00003 
00004 #define ECHO_SERVER_PORT 23
00005 
00006 Serial pc(USBTX, USBRX);
00007 
00008 int main (void)
00009 {
00010     pc.baud(115200);
00011 
00012     pc.printf("안녕 세상!\n");
00013     pc.printf("잠깐만... DHCP 설정중...\r\n");
00014 
00015     uint8_t mac_addr[6] = {0x00, 0x11, 0x22, 0x11, 0xAB, 0xAB};
00016     //uint8_t mac_addr[6] = {0x00, 0x08, 0xDC, 0x00, 0x01, 0x02};
00017 
00018     EthernetInterface eth;
00019     eth.init(mac_addr); //Use DHCP
00020     eth.connect();
00021 
00022     pc.printf("서버주소: %s\r\n", eth.getIPAddress());
00023     pc.printf("서브넷 마스크: %s\r\n", eth.getNetworkMask());
00024     pc.printf("게이트웨이: %s\r\n", eth.getGateway());
00025     pc.printf("맥어드레스: %s\r\n", eth.getMACAddress());
00026 
00027     TCPSocketServer server;
00028     server.bind(ECHO_SERVER_PORT);
00029     server.listen();
00030 
00031     while (true) {
00032         pc.printf("새로운 연결 대기중...\r\n");
00033         TCPSocketConnection client;
00034         server.accept(client);
00035         client.set_blocking(false, 15000); // Timeout after (1.5)s
00036 
00037         pc.printf("클라이언트 연결됨: %s\r\n", client.get_address());
00038         char buffer[256];
00039         while (true) {
00040             int n = client.receive(buffer, sizeof(buffer));
00041             if (n <= 0) break;
00042 
00043             // print received message to terminal
00044             buffer[n] = '\0';
00045             pc.printf("클라이언트로 부터 받은 메시지:'%s'\r\n",buffer);
00046 
00047             // reverse the message
00048             char temp;
00049             for(int f = 0, l = n-1; f<l; f++,l--) {
00050                 temp = buffer[f];
00051                 buffer[f] = buffer[l];
00052                 buffer[l] = temp;
00053             }
00054 
00055             // print reversed message to terminal
00056             pc.printf("클라이언트로 메시지 보냄: '%s'\r\n",buffer);
00057 
00058             // Echo received message back to client
00059             client.send_all(buffer, n);
00060             if (n <= 0) break;
00061         }
00062         client.close();
00063     }
00064 
00065     pc.printf("Bye Bye.\r\n");
00066 }
00067