Azərbaycan dili Bahasa Indonesia Bosanski Català Čeština Dansk Deutsch Eesti English Español Français Galego Hrvatski Italiano Latviešu Lietuvių Magyar Malti Mакедонски Nederlands Norsk Polski Português Português BR Românã Slovenčina Srpski Suomi Svenska Tiếng Việt Türkçe Ελληνικά Български Русский Українська Հայերեն ქართული ენა 中文
Subpage under development, new version coming soon!

Subject: Programação

2009-04-15 20:55:47
voce tem que dar um dispose na frame, e não no servidor... frame.dispose()
2009-04-15 21:00:47
Falando em Java, desculpa Eiro sou mais noob que você em Java e nao vou poder te ajudar, eu tava usando o BlueJ mas agora que pretendo começar um projeto "sério" quero usar uma IDE mais profissional, baixei o NetBeans por indicação de um amigo mas to apanhando pra caramba com ele nao consegui fazer muita coisa ainda. :(
2009-04-15 21:04:35
eu coloco isso dentro do if?

se for pra tirar o if e o else como fica?
2009-04-15 21:06:44
aonde eu coloco o dispose?
2009-04-15 21:22:14
e da aparecendo um erro no available

The method available() is undefined for the type Socket
2009-04-15 21:28:21
eu prefiro o netbeans, mas todo mundo diz que o eclipse é melhor :)
2009-04-15 21:30:00
depois q excede o limite de conexões ele abre o Frame mesmo assim, a diferença é q nao consigo mandar nem receber, come q faz pra nao abrir o Frame e voltar pra parte de inserir a Porta?

coloca logo após você ver que o limite excedeu, ué :) onde fica isso no teu código?
2009-04-15 21:31:06
e da aparecendo um erro no available

The method available() is undefined for the type Socket


errei. muda pra scktOrigem.getInputStream().available()
2009-04-15 23:42:21
Lá no trabalho, usam o Eclipse.
2009-04-16 00:13:09
eiro, o heartbeat deu certo? ta removendo os sockets que desconectaram?
2009-04-16 00:26:31
kra nao ta dando certo... continua nao diminuindo o nº de clientes quando fecha, continua abrindo o Frame depois q a conexão está esgotada...

e esse dispose nao deu certo tbm

Cannot make a static reference to the non-static method dispose() from the type Window
The method dispose() is undefined for the type Servidor

e meu codigo todo ta la atras
(edited)
2009-04-16 00:39:56
lah no trab a galera tbm usa o Eclipse Ganymede
2009-04-16 01:08:55
tenta o seguinte trecho de codigo:

else
{
System.out.println("Capacidade de Conexões Esgotada.");

frame.dispose();

}
}
catch(Exception ex) {
System.out.println(ex);
System.exit(1);
}
}
}
2009-04-16 02:27:38
frame cannot be resolved
2009-04-16 02:50:10
deixa eu entender. vc tem uma frame no cliente e você quer que ela pare de aparecer quando o servidor estiver cheio?

se for isso, você vai precisar implementar um mecanismo de troca de mensagem - antes de exibir a tela, vai ter que ter uma verificação do cliente para o servidor...

eu achava que aparecia uma frame no servidor para definir portas, etc...
2009-04-16 03:19:21
Eiro, acho que resolvi o problema da frame. Segue o novo Cliente:
----------------------------------------------
import java.net.*;
import java.io.*;

import javax.swing.JOptionPane;

public class Cliente extends Thread {
Socket socket;
PrintStream out;
FrameCliente frame;
// public static final int PORTA = 1024;
private int PORTA;
public static final String SERVIDOR = "localhost";

public Cliente() {
init();
}

public void init() {
this.PORTA = Integer.parseInt(JOptionPane.showInputDialog("Informe a Porta do Servidor"));
this.socket = new Socket();
frame = new FrameCliente(socket);
frame.setVisible(true);
try {
this.socket.connect(new InetSocketAddress(InetAddress.getByName(SERVIDOR), PORTA));
frame.getTxfArea().setText(frame.getTxfArea().getText() + " Sucesso!");
} catch (Exception ex) {
frame.getTxfArea().setText(frame.getTxfArea().getText() + " Erro!");
System.out.println(ex);
JOptionPane.showMessageDialog(null,"Maximo numero de conexões atingido!","Erro",JOptionPane.ERROR_MESSAGE);
frame.dispose();
init();
}
}

public void run() {
BufferedReader in;
String msg;
while (true) {
try {
if (socket.getInputStream().available() > 0) {
in = new BufferedReader(new InputStreamReader(socket
.getInputStream()));
msg = in.readLine();
frame.txfArea.append(msg + "\n");
}
} catch (Exception ex) {
System.out.println(ex);
}
try {
Thread.sleep(1000);
} catch (Exception ex) {
}
}
}

public static void main(String[] args) {
Cliente cliente = new Cliente();
cliente.start();

}

}