First commit
Dependencies: EthernetInterface FXAS21002 FXOS8700 NetworkAPI mbed-rtos mbed
main.cpp@10:9e8d5928537a, 2012-09-27 (annotated)
- Committer:
- NegativeBlack
- Date:
- Thu Sep 27 09:35:46 2012 +0000
- Revision:
- 10:9e8d5928537a
- Parent:
- 9:a4c85bea2d77
- Child:
- 11:90554d22ade5
Updated NetworkAPI library.
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
donatien | 0:bb128f0e952f | 1 | #include "mbed.h" |
donatien | 0:bb128f0e952f | 2 | #include "EthernetInterface.h" |
donatien | 0:bb128f0e952f | 3 | |
NegativeBlack | 9:a4c85bea2d77 | 4 | #include "NetworkAPI/buffer.hpp" |
NegativeBlack | 9:a4c85bea2d77 | 5 | #include "NetworkAPI/tcp/socket.hpp" |
NegativeBlack | 9:a4c85bea2d77 | 6 | using namespace network; |
NegativeBlack | 9:a4c85bea2d77 | 7 | |
NegativeBlack | 10:9e8d5928537a | 8 | #define PORT 1234 |
NegativeBlack | 10:9e8d5928537a | 9 | #define MAX_PENDING 1 |
donatien | 0:bb128f0e952f | 10 | |
NegativeBlack | 6:33b57f606f2b | 11 | int |
NegativeBlack | 6:33b57f606f2b | 12 | main() |
NegativeBlack | 6:33b57f606f2b | 13 | { |
NegativeBlack | 6:33b57f606f2b | 14 | EthernetInterface interface; |
NegativeBlack | 6:33b57f606f2b | 15 | interface.init(); |
NegativeBlack | 6:33b57f606f2b | 16 | interface.connect(); |
NegativeBlack | 6:33b57f606f2b | 17 | printf("IP Address is %s\n\r", interface.getIPAddress()); |
NegativeBlack | 9:a4c85bea2d77 | 18 | |
NegativeBlack | 9:a4c85bea2d77 | 19 | tcp::Socket server; |
NegativeBlack | 10:9e8d5928537a | 20 | tcp::Socket client; |
NegativeBlack | 10:9e8d5928537a | 21 | |
NegativeBlack | 10:9e8d5928537a | 22 | Buffer buffer(256); |
NegativeBlack | 8:d55cac25e637 | 23 | |
NegativeBlack | 10:9e8d5928537a | 24 | if (server.open() < 0) { |
NegativeBlack | 10:9e8d5928537a | 25 | printf("Could not open server socket.\n\r"); |
NegativeBlack | 10:9e8d5928537a | 26 | return -1; |
NegativeBlack | 10:9e8d5928537a | 27 | } |
NegativeBlack | 8:d55cac25e637 | 28 | |
NegativeBlack | 10:9e8d5928537a | 29 | if (server.bind(PORT) < 0) { |
NegativeBlack | 10:9e8d5928537a | 30 | printf("Could not bind server socket to port '%d'.\n\r", PORT); |
NegativeBlack | 10:9e8d5928537a | 31 | return -1; |
NegativeBlack | 8:d55cac25e637 | 32 | } |
donatien | 0:bb128f0e952f | 33 | |
NegativeBlack | 10:9e8d5928537a | 34 | if (server.listen(MAX_PENDING) < 0) { |
NegativeBlack | 10:9e8d5928537a | 35 | printf("Could not put server socket into listening mode.\n\r"); |
NegativeBlack | 10:9e8d5928537a | 36 | return -1; |
NegativeBlack | 10:9e8d5928537a | 37 | } |
NegativeBlack | 10:9e8d5928537a | 38 | |
NegativeBlack | 10:9e8d5928537a | 39 | while (server.getStatus() == tcp::Socket::Listening) { |
NegativeBlack | 10:9e8d5928537a | 40 | if (server.accept(client) < 0) { |
NegativeBlack | 10:9e8d5928537a | 41 | printf("Warning: failed to accept connection.\n\r"); |
NegativeBlack | 10:9e8d5928537a | 42 | continue; |
NegativeBlack | 9:a4c85bea2d77 | 43 | } |
NegativeBlack | 10:9e8d5928537a | 44 | |
NegativeBlack | 10:9e8d5928537a | 45 | printf("Client connected '%s:%d'.\n\r", |
NegativeBlack | 10:9e8d5928537a | 46 | client.getRemoteEndpoint().getAddress().toString().c_str(), |
NegativeBlack | 10:9e8d5928537a | 47 | client.getRemoteEndpoint().getPort()); |
NegativeBlack | 8:d55cac25e637 | 48 | |
NegativeBlack | 10:9e8d5928537a | 49 | while (client.getStatus() == tcp::Socket::Connected) { |
NegativeBlack | 10:9e8d5928537a | 50 | buffer.flush(); |
NegativeBlack | 8:d55cac25e637 | 51 | |
NegativeBlack | 10:9e8d5928537a | 52 | switch (client.read(buffer)) { |
NegativeBlack | 10:9e8d5928537a | 53 | case -1: |
NegativeBlack | 10:9e8d5928537a | 54 | printf("Warning: failed to read data from client.\n\r"); |
NegativeBlack | 9:a4c85bea2d77 | 55 | break; |
NegativeBlack | 8:d55cac25e637 | 56 | |
NegativeBlack | 10:9e8d5928537a | 57 | case 0: |
NegativeBlack | 10:9e8d5928537a | 58 | printf("Connection closed.\n\r"); |
NegativeBlack | 9:a4c85bea2d77 | 59 | break; |
NegativeBlack | 9:a4c85bea2d77 | 60 | |
NegativeBlack | 9:a4c85bea2d77 | 61 | default: |
NegativeBlack | 10:9e8d5928537a | 62 | printf("Received %d bytes.\n\r%s\r", buffer.length(), (char *)buffer.data()); |
NegativeBlack | 10:9e8d5928537a | 63 | continue; |
NegativeBlack | 9:a4c85bea2d77 | 64 | } |
NegativeBlack | 10:9e8d5928537a | 65 | |
NegativeBlack | 10:9e8d5928537a | 66 | client.shutdown(); |
NegativeBlack | 10:9e8d5928537a | 67 | client.close(); |
NegativeBlack | 9:a4c85bea2d77 | 68 | } |
NegativeBlack | 10:9e8d5928537a | 69 | } |
NegativeBlack | 6:33b57f606f2b | 70 | } |