FerdouZ Ответов: 1

Может ли кто - нибудь помочь мне создать Программирование сокетов с помощью swing GUI?


Я уже сделал сокетную программу, в которой несколько клиентов отправляют данные на сервер1, а сервер1 пересылает данные на сервер2. Теперь я хочу сделать эту программу с графическим интерфейсом Swing. Может ли кто-нибудь помочь мне, как его создать?
Я представляю свой код ниже ==

Что я уже пробовал:

Клиент
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();
        }
    }
}

сервер1
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();
    }
}

сервер2
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();
        
        }
    }
    
}

Mohibur Rashid

Определите свою проблему.
> это графический интерфейс?
> это сокет?

Попробуйте решить один за другим.

Мое предложение было бы следующим:
Шаг 1:
Сначала заполните гнездо: для консоли:
Создать сервер
Создание клиента
Подтвердите поток.

Шаг 2:
Создайте графический интерфейс.
Сделать графический интерфейс работы

Шаг 3:
Подключите графический интерфейс к существующему классу чата.


Не просто сбрасывайте кучу кода