Galera eu montei duas classes cada uma contem um while(true), ai montei uma terceira q chama estas duas, mas o que contece que esta parando na primeira vejamm…
Eu crio uma Thread para as minhas classes.
Threadt1=newThread(newclassWhile1,"Thread1");// Ele para aqui neste trecho e nao executa mais nada para baixo.Threadt2=newThread(newclassWhile2,"Thread2");t1.start();t2.start();
Esse while true esta no construtor? Como está feito?
Mostra um pedaço dos códigos!
TeiTei
packagesocketmulticlients;importjava.io.*;importjava.net.*;classclassWhile1extendsThread{ServerSocketserver=null;Socketclient=null;BufferedReaderin=null;PrintWriterout=null;Stringline;SocketServer(){listenSocket();}publicvoidlistenSocket(){try{server=newServerSocket(1099);client=server.accept();in=newBufferedReader(newInputStreamReader(client.getInputStream()));out=newPrintWriter(client.getOutputStream(),true);}catch(IOExceptione){System.out.println("Sem conexão com a porta 1099");}while(true){try{line=in.readLine();out.println("recebido pelo servidor com sucesso!");}catch(IOExceptione){System.out.println("Falha na leitura");}}}protectedvoidfinalize(){try{in.close();out.close();server.close();}catch(IOExceptione){System.out.println("Falha ao fechar.");System.exit(-1);}}}
Guilherme_Gomes
Pelo que entendi, logo que vc executa
Threadt1=newThread(newclassWhile1,"Thread1");
Ele está entrando na função listenSocket() e no while(true, por isso não sai dessa linha nunca, tenta passar o conteúdo dessa função para um método run() e veja o que acontece.
tonyam
O método start() executa o método run() da Thread. Então o while fica no método run()
TeiTei
Caras olhem
Classe1:
importjava.io.*;importjava.net.*;classclassWhile1implementsRunnable{Socketsocket=null;PrintWriterout=null;BufferedReaderin=null;publicvoidrun(){try{socket=newSocket("infor26",1099);out=newPrintWriter(socket.getOutputStream(),true);in=newBufferedReader(newInputStreamReader(socket.getInputStream()));}catch(UnknownHostExceptione){System.out.println("Host desconhecido: localhost");System.exit(1);}catch(IOExceptione){System.out.println("Não ha Servidor ouvindo");System.exit(1);}while(true){try{Stringline=in.readLine();System.out.println(line);}catch(IOExceptione){System.out.println("Falha de leitura");System.exit(1);}}}
Classe2:
importjava.io.*;importjava.net.*;classclassWhile2implementsRunnable{ServerSocketserver=null;Socketclient=null;BufferedReaderin=null;PrintWriterout=null;Stringline;publicvoidrun(){try{server=newServerSocket(1099);client=server.accept();in=newBufferedReader(newInputStreamReader(client.getInputStream()));out=newPrintWriter(client.getOutputStream(),true);}catch(IOExceptione){System.out.println("Sem conexão com a porta 1099");}while(true){try{line=in.readLine();out.println("recebido pelo servidor com sucesso!");}catch(IOExceptione){System.out.println("Falha na leitura");}}}}