Criando um socket não bloqueante
Aprenda como criar um socket que não fica esperando eternamente pelo estabelecimento da conexão.
Criando um socket não bloqueante
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) {
}
Artigos relacionados
-
Artigo
-
Artigo
-
Artigo
-
Artigo
-
Artigo