Port of LwIP performed by Ralf in 2010. Not recommended for use with recent mbed libraries, but good demos of raw LwIP possible

Dependents:   LwIP_raw_API_serverExample tiny-dtls

Committer:
RodColeman
Date:
Tue Sep 18 14:41:24 2012 +0000
Revision:
0:0791c1fece8e
[mbed] converted /Eth_TCP_Wei_Server/lwip

Who changed what in which revision?

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