Embedded WebSockets Experiment

Dependencies:   mbed MD5

Committer:
nandgate
Date:
Tue Jul 26 05:30:53 2011 +0000
Revision:
0:6dee052a3fa4

        

Who changed what in which revision?

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