/** {@inheritDoc} */ @Override protected IceSocketWrapper getCandidateIceSocketWrapper(SocketAddress remoteAddress) { for (IceSocketWrapper socket : sockets) { if (socket.getTCPSocket().getRemoteSocketAddress().equals(remoteAddress)) return socket; } return null; }
@Override protected void free() { StunStack stunStack = getStunStack(); TransportAddress localAddr = getTransportAddress(); for (IceSocketWrapper socket : sockets) { // remove our sockets from the stack. Socket tcpSocket = socket.getTCPSocket(); stunStack.removeSocket( localAddr, new TransportAddress(tcpSocket.getInetAddress(), tcpSocket.getPort(), Transport.TCP)); socket.close(); } super.free(); }
/** * Creates a network access point. * * @param socket the socket that this access point is supposed to use for communication. * @param messageQueue the FIFO list where incoming messages should be queued * @param errorHandler the instance to notify when errors occur. */ protected Connector( IceSocketWrapper socket, MessageQueue messageQueue, ErrorHandler errorHandler) { this.sock = socket; this.messageQueue = messageQueue; this.errorHandler = errorHandler; Transport transport = socket.getUDPSocket() != null ? Transport.UDP : Transport.TCP; listenAddress = new TransportAddress(socket.getLocalAddress(), socket.getLocalPort(), transport); if (transport == Transport.UDP) { remoteAddress = null; } else { Socket tcpSocket = socket.getTCPSocket(); remoteAddress = new TransportAddress(tcpSocket.getInetAddress(), tcpSocket.getPort(), transport); } }