An Echo server as described in RFC862. Written as a learning exercise for using Donatien's network stack. Hopefully of some use to others to get started with socket programming.

Dependencies:   mbed

Committer:
darran
Date:
Sat Jun 12 19:05:52 2010 +0000
Revision:
0:c4e397ba6a9d

        

Who changed what in which revision?

UserRevisionLine numberNew contents of line
darran 0:c4e397ba6a9d 1 #ifndef ECHO_SERVER_H
darran 0:c4e397ba6a9d 2 #define ECHO_SERVER_H
darran 0:c4e397ba6a9d 3
darran 0:c4e397ba6a9d 4 #include "mbed.h"
darran 0:c4e397ba6a9d 5 #include "TCPSocket.h"
darran 0:c4e397ba6a9d 6 #include "UDPSocket.h"
darran 0:c4e397ba6a9d 7
darran 0:c4e397ba6a9d 8 #include "TCPEchoHandler.h"
darran 0:c4e397ba6a9d 9
darran 0:c4e397ba6a9d 10 /*
darran 0:c4e397ba6a9d 11 Class: EchoServer
darran 0:c4e397ba6a9d 12 Binds itself to port 7 on TCP and UDP and listens for
darran 0:c4e397ba6a9d 13 incoming connections
darran 0:c4e397ba6a9d 14 */
darran 0:c4e397ba6a9d 15 class EchoServer {
darran 0:c4e397ba6a9d 16 public:
darran 0:c4e397ba6a9d 17 // Constructor: EchoServer
darran 0:c4e397ba6a9d 18 // Creates the TCP and UDP sockets and wires up
darran 0:c4e397ba6a9d 19 // the event callback methods
darran 0:c4e397ba6a9d 20 EchoServer();
darran 0:c4e397ba6a9d 21 // Destructor: ~EchoServer
darran 0:c4e397ba6a9d 22 // Deletes the TCP and UDP sockets
darran 0:c4e397ba6a9d 23 ~EchoServer();
darran 0:c4e397ba6a9d 24 /*
darran 0:c4e397ba6a9d 25 Function: bind
darran 0:c4e397ba6a9d 26 Binds the sockets to the specified ports
darran 0:c4e397ba6a9d 27 Parameters:
darran 0:c4e397ba6a9d 28 tcpPort - The TCP port to bind to (default 7 as per RFC862)
darran 0:c4e397ba6a9d 29 udpPort - The UDP port to bind to (default 7 as per RFC862)
darran 0:c4e397ba6a9d 30 */
darran 0:c4e397ba6a9d 31 void bind(int tcpPort=7, int udpPort=7);
darran 0:c4e397ba6a9d 32 private:
darran 0:c4e397ba6a9d 33 // Variable: tcpSock
darran 0:c4e397ba6a9d 34 // The TCP server socket
darran 0:c4e397ba6a9d 35 TCPSocket* tcpSock;
darran 0:c4e397ba6a9d 36 // Variable: udpSock
darran 0:c4e397ba6a9d 37 // The UDP socket
darran 0:c4e397ba6a9d 38 UDPSocket* udpSock;
darran 0:c4e397ba6a9d 39
darran 0:c4e397ba6a9d 40 // Function: onNetTcpSocketEvent
darran 0:c4e397ba6a9d 41 // The callback function called by the network stack whenever an
darran 0:c4e397ba6a9d 42 // event occurs on the TCP socket
darran 0:c4e397ba6a9d 43 // Parameter: e - The event that has occurred
darran 0:c4e397ba6a9d 44 void onNetTcpSocketEvent(TCPSocketEvent e);
darran 0:c4e397ba6a9d 45 // Function: onNetUdpSocketEvent
darran 0:c4e397ba6a9d 46 // The callback function called by the network stack whenever an
darran 0:c4e397ba6a9d 47 // event occurs on the UDP socket
darran 0:c4e397ba6a9d 48 // Parameter: e - The event that has occurred
darran 0:c4e397ba6a9d 49 void onNetUdpSocketEvent(UDPSocketEvent e);
darran 0:c4e397ba6a9d 50 };
darran 0:c4e397ba6a9d 51
darran 0:c4e397ba6a9d 52 #endif