objetos de soquete Java são usados para representar conexões entre duas máquinas . No entanto, um programa usando soquetes podem ficar atolados se o programa espera por uma conexão para estabelecer . Neste caso , você pode dividir fora um segmento separado de execução que espera por uma conexão enquanto o programa principal ainda corre . Ao estender isso, você pode usar o fio separado para monitorar as tomadas para conexões e lidar com eles, apenas notificando o programa quando uma conexão é feita ou de outra significativa mesmo acontece. Principal ServerSocket Exemplo
Para ouvir uma porta através de um soquete, criar um objeto " SocketServer " . Servidores Soquete escutar as conexões em uma porta específica. Aquando da recepção de informações de conexão nessa porta , o Socket Server retorna um objeto de " soquete " . Todos os dados recebidos pela conexão pode ser processado por aquele objeto socket.
Threads
Threads são instâncias de execução de código dentro de um programa . Estes segmentos de execução permitir a execução concorrente de código, o que significa que o código pode ser escrito para executar ao mesmo tempo através de diferentes threads. Assim, por exemplo , um programa que pretende monitorar algum tipo de estado de fundo ou conexão pode criar uma discussão que faz isso, e chamar a thread principal quando algo muda ou uma conexão ocorre .
< Br > Ouvir Portas Com
Threads
Através da criação de outro segmento, você pode criar o código que acompanha a tomada em segundo plano enquanto o programa principal executa . Por exemplo, você pode implementar uma classe que estende a classe " Runnable " , e executá-lo como um segmento separado para ser executado em segundo plano, ouvindo uma porta :
classe private static SocketListen implementa Runnable { public void run () { try { listenSocket = new ServerSocket ( 9999 ) //ouvir a porta 9999 } catch (IOException e) { System.exit (-1 ) //erro }
Soquete clientSocket = null; try { recebido = serverSocket.accept ( ) //objeto de conexão se o sucesso } catch (IOException e) { System.exit (-1 ) //erro }}}
Dividindo a linha
Se você tiver definido uma classe executável para usar como um agente de escuta /monitoramento, tudo o que resta é usá-lo como um fio. O programa principal pode chamar um segmento separado , como parte de sua execução que irá executar o código de soquete de escuta. Uma vez que o código termina , quer devido ao sucesso ou erro de conexão , o segmento de monitoramento reencontra o segmento principal . A thread principal executa um loop de espera até terminar a thread Monitoramento :
Tópico t = new Thread ( new SocketListen ()); t.start ();
while ( t.isAlive () ) { threadMessage ( " Ainda à espera ... "); t.join (1000 ) //espera um segundo antes de repetir laço }