NetworkConnection.java 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. package client.view;
  2. import java.awt.Color;
  3. import java.awt.event.ActionEvent;
  4. import java.awt.event.ActionListener;
  5. import java.io.IOException;
  6. import java.io.ObjectInputStream;
  7. import java.io.ObjectOutputStream;
  8. import java.net.Socket;
  9. import server.network.NetworkMessage;
  10. public class NetworkConnection {
  11. private ChatPanel chatpanel;
  12. private Socket serversocket;
  13. private Thread runningthread;
  14. ObjectOutputStream output;
  15. public NetworkConnection(ChatPanel chatpanel){
  16. this.chatpanel = chatpanel;
  17. connect();
  18. }
  19. public void connect(){
  20. try {
  21. serversocket = new Socket("jancokock.me", 5499);
  22. output = new ObjectOutputStream(serversocket.getOutputStream());
  23. runningthread = new Thread(new Runnable() {
  24. @Override
  25. public void run() {
  26. ObjectInputStream input;
  27. try {
  28. input = new ObjectInputStream(serversocket.getInputStream());
  29. while(true){
  30. try {
  31. NetworkMessage m = (NetworkMessage)input.readObject();
  32. chatpanel.addMessage(m);
  33. } catch (ClassNotFoundException e) {
  34. e.printStackTrace();
  35. }
  36. }
  37. } catch (IOException e) {
  38. e.printStackTrace();
  39. }
  40. }
  41. });
  42. chatpanel.getSendButton().addActionListener(new ActionListener() {
  43. @Override
  44. public void actionPerformed(ActionEvent e) {
  45. sendMessage(chatpanel.getInputField().getText());
  46. chatpanel.getInputField().setText("");
  47. }
  48. });
  49. runningthread.start();
  50. } catch (IOException e1) {
  51. System.out.println("Er kon geen connectie naar de server gemaakt worden.");
  52. e1.printStackTrace();
  53. }
  54. }
  55. public void disconnect(){
  56. if(serversocket.isConnected()){
  57. try {
  58. serversocket.close();
  59. } catch (IOException e) {
  60. e.printStackTrace();
  61. }
  62. }
  63. runningthread.stop();
  64. }
  65. public void sendMessage(String message){
  66. try {
  67. NetworkMessage nwmessage = new NetworkMessage(message, Color.red, "Janco" );
  68. chatpanel.addMessage(nwmessage);
  69. output.writeObject(nwmessage);
  70. } catch (IOException e) {
  71. e.printStackTrace();
  72. }
  73. }
  74. }