G
Guest
Gast
Hi alle zusammen,
ich hab folgendes Problem.
Ich hab ein Java Programm, was auf einem Socket auf ankommende UDP-Pakete lauscht und, wenn welche ankommen, einen Thread startet, der diese verarbeitet. Nahdem dieser Thread gestartet ist, bei das Programm jedoch stehen. Wenn ich das Programm debugge und den Thread, der das Paket bearbeitet supendiere steht er immer an eine Zeile:
Der Aufruf sieht so aus:
(assen rum steht noch ein Try/catch, natürlich)
Der gestartete Thread sieht so aus :
log ist ein log4j Logger, das ganze läuft unter Eclipse3.1 mit JDK1.5.0_04 als VM. Das Problem tritt auch auf, wenn ich das ganze in ein JAR acke und in der Komando-Zeile laufen lasse. Betriebssystem ist Win2000.
Das Programm bleibt hängen bei Zeile 11 "packetData = messageContainer.getData();"
Das merkwürdige zum Schluss: Wenn das 2. Paket gesendet wird, läuft das ganze durch. Es bleibt nicht hängen.
Jetzt meine Fragen.:
Initialisiere ich ein Objekt nicht richtig, und es läuft deshalb erst beim 2. Mal?
Oder ist das ein mögliches Timing Problem?
Danke für Hilfe!
Daishi1002
ich hab folgendes Problem.
Ich hab ein Java Programm, was auf einem Socket auf ankommende UDP-Pakete lauscht und, wenn welche ankommen, einen Thread startet, der diese verarbeitet. Nahdem dieser Thread gestartet ist, bei das Programm jedoch stehen. Wenn ich das Programm debugge und den Thread, der das Paket bearbeitet supendiere steht er immer an eine Zeile:
Der Aufruf sieht so aus:
Code:
while (true) {
log.info("waiting for incoming packet");
udpSocket.receive(receiverPacket);
log.info("received packet");
handlerStarter = new MessageHandlerUdp(receiverPacket);
handlerStarter.setDaemon(true);
handlerStarter.start();
log.info("MessageHandler startet by me");
}
(assen rum steht noch ein Try/catch, natürlich)
Der gestartete Thread sieht so aus :
Code:
public MessageHandlerUdp(DatagramPacket messagePacket) {
messageContainer = messagePacket;
log = Logger.getLogger(MessageHandlerUdp.class);
//System.out.println("Paketlength: "+ messageContainer.getLength());
}
public void run() {
log.info("started now.");
packetData = messageContainer.getData();
xmlString = new String(packetData);
log ist ein log4j Logger, das ganze läuft unter Eclipse3.1 mit JDK1.5.0_04 als VM. Das Problem tritt auch auf, wenn ich das ganze in ein JAR acke und in der Komando-Zeile laufen lasse. Betriebssystem ist Win2000.
Das Programm bleibt hängen bei Zeile 11 "packetData = messageContainer.getData();"
Das merkwürdige zum Schluss: Wenn das 2. Paket gesendet wird, läuft das ganze durch. Es bleibt nicht hängen.
Jetzt meine Fragen.:
Initialisiere ich ein Objekt nicht richtig, und es läuft deshalb erst beim 2. Mal?
Oder ist das ein mögliches Timing Problem?
Danke für Hilfe!
Daishi1002