'Create a new L{Port} based on an existing listening I{SOCK_STREAM}
socket.
Arguments are the same as to L{Port.__init__}, except where noted.
@param fd: An integer file descriptor associated with a listening
socket.  The socket must be in non-blocking mode.  Any additional
attributes desired, such as I{FD_CLOEXEC}, must also be set already.
@param addressFamily: The address family (sometimes called I{domain}) of
the existing socket.  For example, L{socket.AF_INET}.
@return: A new instance of C{cls} wrapping the socket given by C{fd}.'

@classmethod
def _fromListeningDescriptor(cls, reactor, fd, addressFamily, factory):

    port = socket.fromfd(fd, addressFamily, cls.socketType)
    interface = port.getsockname()[0]
    self = cls(None, factory, None, interface, reactor)
    self._preexistingSocket = port
    return self
