Guest User

Chat Server

a guest
Aug 20th, 2019
50
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 4.21 KB | None | 0 0
  1. import javax.swing.JFrame;
  2. import javax.swing.JButton;
  3. import javax.swing.JTextField;
  4. import java.awt.FlowLayout;
  5. import java.awt.BorderLayout;
  6. import javax.swing.JOptionPane;
  7. import java.awt.event.*;
  8. import javax.swing.*;
  9.  
  10. import java.util.*;
  11. import java.awt.*;
  12.  
  13. import java.io.*;
  14. import java.net.*;
  15.  
  16. public class Server //change main class name
  17. {
  18.     static JFrame chatFrame = new JFrame("ChatNow Server"); // Create a frame
  19.     static JTextArea JTextArea_group = new JTextArea("Here goes the conversation\n", 15, 80);
  20.     static NetworkServerModule networkServerModule;
  21.     static String serverHandle = JOptionPane.showInputDialog("Please choose your handle");
  22.    
  23.     public static void main(String[] args)
  24.     {
  25.         chatFrame.setSize(900, 400); // Set the frame size
  26.         chatFrame.setLocationRelativeTo(null);
  27.         chatFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  28.         chatFrame.setVisible(true); // Display the frame
  29.  
  30.        
  31.         FlowLayout layoutManager = new FlowLayout(0,10,5);
  32.         chatFrame.setLayout(layoutManager);
  33.  
  34.  
  35. //        JTextArea JTextArea_group = new JTextArea("Here goes the conversation", 15, 80);
  36.         JTextArea_group.setLineWrap(true);
  37.         JTextArea_group.setWrapStyleWord(true);
  38.         JTextArea_group.setEditable(false);
  39.  
  40.         //chatFrame.add(JTextArea_group);
  41.  
  42.  
  43.         /* here add scroll to JTextArea - actually JScrollpane takes JTextArea */        
  44.         JScrollPane scrollPane = new JScrollPane(JTextArea_group);
  45.         chatFrame.add(scrollPane);
  46.  
  47.              
  48.  
  49.         JTextField_group JTF = new JTextField_group();
  50.         networkServerModule = new NetworkServerModule();
  51.  
  52.    }
  53.  }
  54.  
  55. class JTextField_group  
  56. {
  57.     JTextField TextFieldChatInput = new JTextField(80);
  58.  
  59.     JTextField_group()
  60.     {    
  61.         Server.chatFrame.add(TextFieldChatInput);                  
  62.         TextFieldChatInput.setText("Does some text show up?");    
  63.  
  64.         TextFieldChatInput.addActionListener(new messageTextInputListener());
  65.     }
  66.  
  67.     class messageTextInputListener implements ActionListener
  68.     {
  69.         @Override
  70.         public void actionPerformed(ActionEvent e)
  71.         {
  72.             /*
  73.             JOptionPane.showMessageDialog(null, "The text you entered is: " + TextFieldChatInput.getText());
  74.             ChatGUI.JTextArea_group.setText( TextFieldChatInput.getText() );
  75.             */
  76.  
  77.             String IhaveTextOfChatInput = TextFieldChatInput.getText();
  78.             Server.JTextArea_group.append(Server.serverHandle + ": " + "\n");
  79.             Server.JTextArea_group.append(IhaveTextOfChatInput + "\n");
  80.             TextFieldChatInput.setText("");
  81.  
  82.             if (NetworkServerModule.oClient != null)
  83.             {
  84.                 NetworkServerModule.oClient.println(Server.serverHandle + ": ");
  85.                 NetworkServerModule.oClient.println(IhaveTextOfChatInput);
  86.                 NetworkServerModule.oClient.flush();
  87.             }
  88.                        
  89.         }
  90.     }
  91. }
  92.  
  93. class NetworkServerModule
  94. {
  95.  
  96.     ServerSocket serverSocket;
  97.     Socket socket;
  98.  
  99.     static DataInputStream iClient;
  100.     static PrintWriter oClient;
  101.  
  102.     NetworkServerModule()
  103.     {
  104.         try
  105.         {
  106.             serverSocket = new ServerSocket(8000);
  107.             socket = serverSocket.accept();
  108.  
  109.             iClient = new DataInputStream(socket.getInputStream());
  110.             oClient = new PrintWriter(socket.getOutputStream());
  111.            
  112.             for(int start = 0; start < 1000 ;start++)     ////////////////////////////////////while(true)            
  113.             {
  114.                waitA();  
  115.  
  116.                String textFromClient = iClient.readLine();         ////// maybe need if-statement   // writeUTF     readUTF
  117.                if (textFromClient != null)
  118.                    Server.JTextArea_group.append(textFromClient + "\n");
  119.             }
  120.            
  121.        
  122.         }
  123.  
  124.         catch(IOException ex)
  125.         {
  126.             System.err.println(ex);
  127.         }
  128.  
  129.     }
  130.  
  131.     void waitA()
  132.     {
  133.         try
  134.         {
  135.             Thread.sleep(300);
  136.         }
  137.  
  138.         catch(InterruptedException ex)
  139.         {
  140.             Thread.currentThread().interrupt();
  141.         }
  142.     }
  143. }
Add Comment
Please, Sign In to add comment