DLLEXPORT double socket_local_port(double handle) {
    boost::shared_ptr<Socket> socket = handles.find<Socket> (handle);
    if (socket) {
        return socket->getLocalPort();
    }

    AcceptorPtr acceptor = handles.find<CombinedTcpAcceptor> (handle);
    if(acceptor) {
        return acceptor->getLocalPort();
    }

    return 0;
}