Click here to Skip to main content
15,886,110 members
Please Sign up or sign in to vote.
0.00/5 (No votes)
See more:
I already done a socket program where multiple client send data to server1 and server1 forward the data to server2. Now I want to do this program with Swing GUI. Can anyone help me how to create it?
I submit my code below ==

What I have tried:

Client
import java.net.*;
import java.io.*;


public class JavaClientApp {

    public static void main(String[] args) throws IOException {
        // Setting server hostname 127.0.0.2
        String hostName = "127.0.0.2";
        // Setting server port number 5056
        int portNumber = Integer.parseInt("5056");

        Boolean done = false;
        while (done == false) {
        
               // Instantinate the buffer reader object to read data from stdin
               BufferedReader stdIn =
                   new BufferedReader(new InputStreamReader(System.in));
            
               System.out.print("Type in your message /> ");
           
               // Retrieve each line from user input
               String userInput = stdIn.readLine();
                 
               if (userInput.equals("Quit") || userInput.equals("Exit")) {
                   done = true; break;
               }
                    
               // Print out `Sending a message...` string
               System.out.println("Sending a message...");
                
               Socket clientSocket = new Socket(hostName, portNumber);
                
               BufferedReader inputStream = new BufferedReader(
                       new InputStreamReader(clientSocket.getInputStream()));
                
               PrintWriter outputStream = new PrintWriter(clientSocket.getOutputStream(), true);
                
               outputStream.println(String.format(userInput));

               String msg_buf = inputStream.readLine();
                
               System.out.println(msg_buf);
                
               clientSocket.close();
        }
    }
}

server1
import java.net.*;
import java.io.*;

public class JavaMTServer {

 
    public static void main(String[] args) throws IOException {
        // TODO code application logic here
        // Setting server hostname 127.0.0.2
        String hostName = "127.0.0.2";
        // Setting server port number 5058
        int portNumber = Integer.parseInt("5058");
        
        @SuppressWarnings("resource")
		ServerSocket srvSocket = new ServerSocket(5056);
        
        while (true) {
        
            Socket clientSocket = srvSocket.accept();
        
            Thread cliSockThread = new Thread() {
                public void run() {
                    BufferedReader inputStream = null;
                    try {
                        inputStream = new BufferedReader(
                                new InputStreamReader(clientSocket.getInputStream()));
                        PrintWriter outputStream = new PrintWriter(clientSocket.getOutputStream(), true);
                        String msg_buf = inputStream.readLine();
                        System.out.println(msg_buf);

                        Socket clientSTSocket = new Socket(hostName, portNumber);
                
                        BufferedReader inputStream2 = new BufferedReader(
                            new InputStreamReader(clientSTSocket.getInputStream()));
                
                        PrintWriter outputStream2 = new PrintWriter(clientSTSocket.getOutputStream(), true);
                
                        outputStream2.println(msg_buf);

                        String msg_buf2 = inputStream2.readLine();
                
                        System.out.println(msg_buf2);

                        outputStream.println(msg_buf2);
                
                        clientSTSocket.close();                        
                        
                        clientSocket.close();
                    } catch (IOException ex) {
                    	System.out.println("Server Down Trying to reconnect");
                       // Logger.getLogger(JavaMTServer.class.getName()).log(Level.SEVERE, null, ex);
                    } finally {
                        try {
                            inputStream.close();
                        } catch (IOException ex) {
                           // Logger.getLogger(JavaMTServer.class.getName()).log(Level.SEVERE, null, ex);
                        }
                    }
                }
            };

            cliSockThread.start();
        }
        
        //srvSocket.close();
    }
}

server2
import java.net.*;
import java.io.*;


public class JavaSTServer {

  
    public static void main(String[] args) throws IOException {
      
        @SuppressWarnings("resource")
		ServerSocket srvSocket = new ServerSocket(5056);

        while (true) {
        
        Socket clientSocket = srvSocket.accept();
        
        BufferedReader inputStream = new BufferedReader(
              new InputStreamReader(clientSocket.getInputStream()));
        PrintWriter outputStream = new PrintWriter(clientSocket.getOutputStream(), true);

        String msg_buf = "\0";
        while ((msg_buf = inputStream.readLine()) != null) {
            System.out.println(msg_buf);
            outputStream.println("Echo: " + msg_buf);
        }
        
        clientSocket.close();
        
        }
    }
    
}
Posted
Updated 19-Aug-18 21:43pm
Comments
Mohibur Rashid 20-Aug-18 3:15am    
Identify your problem.
> Is it GUI?
> Is it socket?

Try to solve one by one.

My suggestion would be:
Step 1:
Complete the Socket first: for console:
Create server
Create client
Confirm the flow.

Step 2:
Create GUI.
Make the GUI work

Step 3:
Connect your GUI with your existing chat class.


Don't just dump loads of code

1 solution

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900