Liebe Java-Gemeinde,
ich stehe vor einem Problem, bei dem ich mir schon seit geraumer Zeit die Zähne ausbeiße. Dafür versuche ich hier einmal ein Minimalbeispiel zu bringen:
Ich rufe das Verbindungsarray dieser Server-Klasse in einer anderen Klasse auf, bekomme aber stets nur die Größe bzw. das leere Array mit den beiden getter-Methoden zurück:
In der Methode verbinden() der Klasse GUI tritt das Problem dann auf...Also scheint die Variable VerbindungsArray aus Server gar nicht geupdated zu werden...Was kann ich hier tun? Sie ist volatile gewählt, damit andere Threads stets die neueste Kopie nehmen.
Ich wäre euch für Hilfe dankbar!
Gruß Frnaz
ich stehe vor einem Problem, bei dem ich mir schon seit geraumer Zeit die Zähne ausbeiße. Dafür versuche ich hier einmal ein Minimalbeispiel zu bringen:
Java:
public class Server{
//Speichere alle Verbindungen
public static volatile ArrayList<Socket> VerbindungsArray = new ArrayList<Socket>();
public static void main(String[] args) {
try {
while(true) {
...hier wird ein neues Element ins VerbindungsArray aufgenommen....
}
}
catch (Exception e) {}
}
public static Socket getSocket(int i){
return VerbindungsArray.get(i);
}
public static int getVerbindungsArraySize(){
return VerbindungsArray.size();
}
}
Ich rufe das Verbindungsarray dieser Server-Klasse in einer anderen Klasse auf, bekomme aber stets nur die Größe bzw. das leere Array mit den beiden getter-Methoden zurück:
Java:
package ClientServer;
import java.awt.*;
import java.awt.event.*;
import java.net.Socket;
import javax.swing.*;
import javax.swing.text.DefaultCaret;
public class GUI extends JFrame implements ActionListener {
static Frame myFrame;
//**********************************************
//****************Konstruktor*******************
//**********************************************
public GUI(){
...
}
//**********************************************
//******************Main************************
//**********************************************
static public void main(String argv[]){
new GUI();
}
public void verbinden(){
try
{
Socket sock = Server.getSocket(Server.getVerbindungsArraySize())
}
catch(Exception e)
{
System.out.print(e);
}
}
}
Ich wäre euch für Hilfe dankbar!
Gruß Frnaz
Zuletzt bearbeitet von einem Moderator: