Criando um socket não bloqueante

Você precisa estar logado para dar um feedback. Clique aqui para efetuar o login
Para efetuar o download você precisa estar logado. Clique aqui para efetuar o login
Confirmar voto
0
 (1)  (2)

Aprenda como criar um socket que não fica esperando eternamente pelo estabelecimento da conexão.

Este exemplo mostra como cirar um socket não bloqueante. Para que seja possível a criação deste socket, é necessário um canal de comunicação para ele.

// Cria um canal de socket não bloqueante para um host e uma porta específica. // connect() é chamando no novo canal antes dele retorna. public static SocketChannel createSocketChannel(String hostName, int port) throws IOException { // Cria um canal de socket não bloqueante
SocketChannel sChannel = SocketChannel.open(); sChannel.configureBlocking(false); // Envia o pedido de conexão para o servidor; este método é não bloqueante sChannel.connect(new InetSocketAddress(hostName, port)); return sChannel; } // Cria um socket não bloqueante e faz a verificação por conexões try { // Cria um canal de socket não bloqueante na porta 80 SocketChannel sChannel = createSocketChannel("hostname.com", 80); // Antes do socket ser utilizado, a conexão deve ser efetuada // através da chamada de finishConnect(), que é um método não bloqueante while (!sChannel.finishConnect()) { // Fazer algo enquanto a conexão não estiver estabelecida } // Canal de socket está pronto para ser usado } catch (IOException e) { }

 

 
Você precisa estar logado para dar um feedback. Clique aqui para efetuar o login
Receba nossas novidades
Ficou com alguma dúvida?