oijoijoij
Dependencies: EthernetInterface mbed-rtos mbed
Fork of TCPSocket_HelloWorld by
server.cpp@17:a7c2054d0d3a, 2015-07-02 (annotated)
- Committer:
- educalle00
- Date:
- Thu Jul 02 22:18:36 2015 +0000
- Revision:
- 17:a7c2054d0d3a
- Parent:
- 16:b9b148b32ca8
TCP socket commit
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
educalle00 | 16:b9b148b32ca8 | 1 | /*#include "mbed.h" |
educalle00 | 16:b9b148b32ca8 | 2 | #include "EthernetInterface.h" |
educalle00 | 16:b9b148b32ca8 | 3 | |
educalle00 | 16:b9b148b32ca8 | 4 | #define ECHO_SERVER_PORT 54321 |
educalle00 | 16:b9b148b32ca8 | 5 | |
educalle00 | 16:b9b148b32ca8 | 6 | #define IP "192.168.0.10" |
educalle00 | 16:b9b148b32ca8 | 7 | #define GATEWAY "192.168.0.1" |
educalle00 | 16:b9b148b32ca8 | 8 | #define MASK "255.255.255.0" |
educalle00 | 16:b9b148b32ca8 | 9 | |
educalle00 | 16:b9b148b32ca8 | 10 | #define LEN 18980 |
educalle00 | 16:b9b148b32ca8 | 11 | uint16_t sample_array0[LEN]; |
educalle00 | 16:b9b148b32ca8 | 12 | |
educalle00 | 16:b9b148b32ca8 | 13 | DigitalOut led_red(LED_RED); |
educalle00 | 16:b9b148b32ca8 | 14 | DigitalOut led_green(LED_GREEN); |
educalle00 | 16:b9b148b32ca8 | 15 | DigitalOut led_blue(LED_BLUE); |
educalle00 | 16:b9b148b32ca8 | 16 | |
educalle00 | 16:b9b148b32ca8 | 17 | Serial pc(USBTX,USBRX); |
educalle00 | 16:b9b148b32ca8 | 18 | |
educalle00 | 16:b9b148b32ca8 | 19 | int main (void) { |
educalle00 | 16:b9b148b32ca8 | 20 | for(int i = 0; i < LEN; i++) sample_array0[i] = ((0x0031<<8) | 0x0032); |
educalle00 | 16:b9b148b32ca8 | 21 | sample_array0[0] = ('S'<<8)|'S'; |
educalle00 | 16:b9b148b32ca8 | 22 | sample_array0[LEN-1] = ('F'<<8) | 'F'; |
educalle00 | 16:b9b148b32ca8 | 23 | pc.baud(9600); |
educalle00 | 16:b9b148b32ca8 | 24 | pc.printf("Starting test server\r\n"); |
educalle00 | 16:b9b148b32ca8 | 25 | |
educalle00 | 16:b9b148b32ca8 | 26 | EthernetInterface eth; |
educalle00 | 16:b9b148b32ca8 | 27 | eth.init(IP, MASK, GATEWAY); |
educalle00 | 16:b9b148b32ca8 | 28 | eth.connect(); |
educalle00 | 16:b9b148b32ca8 | 29 | pc.printf("IP Address is %s\r\n", eth.getIPAddress()); |
educalle00 | 16:b9b148b32ca8 | 30 | |
educalle00 | 16:b9b148b32ca8 | 31 | TCPSocketServer server; |
educalle00 | 16:b9b148b32ca8 | 32 | server.bind(ECHO_SERVER_PORT); |
educalle00 | 16:b9b148b32ca8 | 33 | server.listen(); |
educalle00 | 16:b9b148b32ca8 | 34 | |
educalle00 | 16:b9b148b32ca8 | 35 | led_blue = 1; |
educalle00 | 16:b9b148b32ca8 | 36 | led_green = 1; |
educalle00 | 16:b9b148b32ca8 | 37 | led_red = 1; |
educalle00 | 16:b9b148b32ca8 | 38 | |
educalle00 | 16:b9b148b32ca8 | 39 | while (true) { |
educalle00 | 16:b9b148b32ca8 | 40 | //pc.printf("\r\nWait for new connection...\r\n"); |
educalle00 | 16:b9b148b32ca8 | 41 | |
educalle00 | 16:b9b148b32ca8 | 42 | |
educalle00 | 16:b9b148b32ca8 | 43 | TCPSocketConnection client; |
educalle00 | 16:b9b148b32ca8 | 44 | server.accept(client); |
educalle00 | 16:b9b148b32ca8 | 45 | client.set_blocking(true, 5000); |
educalle00 | 16:b9b148b32ca8 | 46 | |
educalle00 | 16:b9b148b32ca8 | 47 | //pc.printf("Connection from: %s\r\n", client.get_address()); |
educalle00 | 16:b9b148b32ca8 | 48 | char buffer[1460]; // size of IP payload |
educalle00 | 16:b9b148b32ca8 | 49 | while (true) { |
educalle00 | 16:b9b148b32ca8 | 50 | int n = client.receive(buffer, sizeof(buffer)); |
educalle00 | 16:b9b148b32ca8 | 51 | if (n <= 0) break; |
educalle00 | 16:b9b148b32ca8 | 52 | pc.printf("Rec: %i: ",n); |
educalle00 | 16:b9b148b32ca8 | 53 | |
educalle00 | 16:b9b148b32ca8 | 54 | |
educalle00 | 16:b9b148b32ca8 | 55 | n = client.send_all((char *)sample_array0, LEN*2); |
educalle00 | 16:b9b148b32ca8 | 56 | |
educalle00 | 16:b9b148b32ca8 | 57 | if (n <= 0) {led_blue = 0; break;} |
educalle00 | 16:b9b148b32ca8 | 58 | pc.printf("Sent %i: ",n); |
educalle00 | 16:b9b148b32ca8 | 59 | } |
educalle00 | 16:b9b148b32ca8 | 60 | |
educalle00 | 16:b9b148b32ca8 | 61 | client.close(); |
educalle00 | 16:b9b148b32ca8 | 62 | pc.printf("\r\n"); |
educalle00 | 16:b9b148b32ca8 | 63 | } |
educalle00 | 16:b9b148b32ca8 | 64 | }*/ |