Simple code for comunication via TCP between the mbed and PC.
Dependencies: EthernetInterface SimpleSocket mbed-rtos mbed
Fork of SimpleSocketExamples by
examples/echoclient.cpp@0:6dc3cfd058c6, 2013-02-04 (annotated)
- Committer:
- yamaguch
- Date:
- Mon Feb 04 09:29:18 2013 +0000
- Revision:
- 0:6dc3cfd058c6
modified to use SimpleSocket/EthernetInterface
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
yamaguch | 0:6dc3cfd058c6 | 1 | #include "SimpleSocket.h" |
yamaguch | 0:6dc3cfd058c6 | 2 | |
yamaguch | 0:6dc3cfd058c6 | 3 | void echoclient() { |
yamaguch | 0:6dc3cfd058c6 | 4 | printf("Echo server => "); |
yamaguch | 0:6dc3cfd058c6 | 5 | char server[32]; |
yamaguch | 0:6dc3cfd058c6 | 6 | scanf("%s", server); |
yamaguch | 0:6dc3cfd058c6 | 7 | |
yamaguch | 0:6dc3cfd058c6 | 8 | ClientSocket socket(server, 1234); |
yamaguch | 0:6dc3cfd058c6 | 9 | |
yamaguch | 0:6dc3cfd058c6 | 10 | if (socket) { |
yamaguch | 0:6dc3cfd058c6 | 11 | char message[80] = {}; |
yamaguch | 0:6dc3cfd058c6 | 12 | printf("Enter message => "); |
yamaguch | 0:6dc3cfd058c6 | 13 | int c = 0; |
yamaguch | 0:6dc3cfd058c6 | 14 | while (c < ' ' || 0x7E < c) |
yamaguch | 0:6dc3cfd058c6 | 15 | c = getc(stdin); |
yamaguch | 0:6dc3cfd058c6 | 16 | ungetc(c, stdin); |
yamaguch | 0:6dc3cfd058c6 | 17 | for (int i = 0; i < sizeof(message) - 1 && (c = getc(stdin)) >= ' '; i++) |
yamaguch | 0:6dc3cfd058c6 | 18 | message[i] = c; |
yamaguch | 0:6dc3cfd058c6 | 19 | |
yamaguch | 0:6dc3cfd058c6 | 20 | socket.printf("%s\r\n", message); |
yamaguch | 0:6dc3cfd058c6 | 21 | |
yamaguch | 0:6dc3cfd058c6 | 22 | // wait until data is received |
yamaguch | 0:6dc3cfd058c6 | 23 | while (!socket.available()) |
yamaguch | 0:6dc3cfd058c6 | 24 | ; |
yamaguch | 0:6dc3cfd058c6 | 25 | printf("Received: "); |
yamaguch | 0:6dc3cfd058c6 | 26 | |
yamaguch | 0:6dc3cfd058c6 | 27 | while (socket.available()) { |
yamaguch | 0:6dc3cfd058c6 | 28 | char buf[128]; |
yamaguch | 0:6dc3cfd058c6 | 29 | int len = socket.read(buf, sizeof(buf) - 1); |
yamaguch | 0:6dc3cfd058c6 | 30 | buf[len] = '\0'; |
yamaguch | 0:6dc3cfd058c6 | 31 | printf("%s", buf); |
yamaguch | 0:6dc3cfd058c6 | 32 | } |
yamaguch | 0:6dc3cfd058c6 | 33 | printf("\nClosing...\n"); |
yamaguch | 0:6dc3cfd058c6 | 34 | socket.close(); |
yamaguch | 0:6dc3cfd058c6 | 35 | } |
yamaguch | 0:6dc3cfd058c6 | 36 | printf("Done.\n"); |
yamaguch | 0:6dc3cfd058c6 | 37 | } |