Ik heb in Java een chat programma geprogrammeerd. Het werkt helaas maar half ik kan alleen maar berichten verzenden en niet ontvangen.
Wat is mijn probleem namelijk:
Ik maak een threath aan die steeds een stream leegt om te kijken op nieuwe berichten, althans was mijn idee is dit een goed idee????. Maar de threath die ik aanmaak wil helaas pas draaien als de socket geen verbinding meer heeft met het andere programma.
Ik vind dit erg vaag, ik gebruik geen threath.stop resume of andere methoden van de thread die vaak voor fouten zorgen hier heb ik delen van mijn code. Hieronder staat mijn code
Waar kan mijn probleem aan liggen, ik ben nog redelijk nieuw in het java wereldje duzzz kan best zijn dat ik wat vergeet bij het maken van een threath. Alles zit wel bij mij in een class niet echt netjes maarja.
Nog even een andere vraag hoe kan ik nu het best een threath stoppen?
Zoeiets:
Alvast bedankt!
Wat is mijn probleem namelijk:
Ik maak een threath aan die steeds een stream leegt om te kijken op nieuwe berichten, althans was mijn idee is dit een goed idee????. Maar de threath die ik aanmaak wil helaas pas draaien als de socket geen verbinding meer heeft met het andere programma.
Ik vind dit erg vaag, ik gebruik geen threath.stop resume of andere methoden van de thread die vaak voor fouten zorgen hier heb ik delen van mijn code. Hieronder staat mijn code
Java:
1
2
3
4
5
6
7
| import java.awt.*; import java.awt.event.*; import javax.swing.*; import java.io.*; import java.net.*; public class ChatWin extends Frame implements ActionListener, Runnable { |
Java:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
| public void run() { Thread myThread = Thread.currentThread(); //th == myThread dit had ik eerst in while staan maar daar ligt he took niet aan while (true) { try { JOptionPane.showMessageDialog(null, br.readLine()); txtChat.setText(br.readLine()); }catch (Exception h){ JOptionPane.showMessageDialog(null, h.getMessage()); } } } |
Java:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
| //code die de socket opent en een threath start public void openChatSession() { // Openen van chat sessie try { chatSocket = new Socket(txtRemoteIp.getText(), Integer.parseInt(txtRemotePort.getText())); br = new BufferedReader(new InputStreamReader(chatSocket.getInputStream())); bw = new BufferedWriter(new OutputStreamWriter(chatSocket.getOutputStream())); th = new Thread(this); th.start(); } catch(Exception e) { JOptionPane.showMessageDialog(null, e.getMessage()); } } |
Waar kan mijn probleem aan liggen, ik ben nog redelijk nieuw in het java wereldje duzzz kan best zijn dat ik wat vergeet bij het maken van een threath. Alles zit wel bij mij in een class niet echt netjes maarja.
Nog even een andere vraag hoe kan ik nu het best een threath stoppen?
Zoeiets:
Java:
1
2
3
4
| threathNaam = null; //of toch threathNaam.stop(); // Volgens meerdere boeken en websites is de laatste een slechte methode kan namelijk fouten veroorzaken. Maar kan ik dan het best de bovenste nemen??? |
Alvast bedankt!