Example of HTTPServer with additional features: * SNTPClient, DST rules * Link status indication * Local or SDCard-based WebServer * RPC-able class * Static and Dynamic HTML page

Dependencies:   mbed

Committer:
iva2k
Date:
Tue Jan 12 07:41:55 2010 +0000
Revision:
2:360fda42fefd
Parent:
0:886e4b3119ad

        

Who changed what in which revision?

UserRevisionLine numberNew contents of line
iva2k 0:886e4b3119ad 1 #include "TCPListener.h"
iva2k 0:886e4b3119ad 2 #include "NetServer.h"
iva2k 0:886e4b3119ad 3
iva2k 0:886e4b3119ad 4 using namespace std;
iva2k 0:886e4b3119ad 5 using namespace mbed;
iva2k 0:886e4b3119ad 6
iva2k 0:886e4b3119ad 7 err_t TCPListener::accept_callback(void *arg, struct tcp_pcb *newpcb, err_t err) {
iva2k 0:886e4b3119ad 8 TCPListener *listener = static_cast<TCPListener *>(arg);
iva2k 0:886e4b3119ad 9 if(listener) {
iva2k 0:886e4b3119ad 10 return (listener->accept)(newpcb, err);
iva2k 0:886e4b3119ad 11 }
iva2k 0:886e4b3119ad 12 return ERR_OK;
iva2k 0:886e4b3119ad 13 }
iva2k 0:886e4b3119ad 14
iva2k 0:886e4b3119ad 15 void TCPListener::bind() {
iva2k 0:886e4b3119ad 16 NetServer::ready();
iva2k 0:886e4b3119ad 17 open();
iva2k 0:886e4b3119ad 18 tcp_arg(this->_pcb, static_cast<void *>(this));
iva2k 0:886e4b3119ad 19 if(tcp_bind(this->_pcb, IP_ADDR_ANY, this->_port) == ERR_OK) {
iva2k 0:886e4b3119ad 20 this->_pcb = tcp_listen(this->_pcb);
iva2k 0:886e4b3119ad 21 tcp_accept(this->_pcb, TCPListener::accept_callback);
iva2k 0:886e4b3119ad 22 }
iva2k 0:886e4b3119ad 23 }