Может ли кто - нибудь помочь мне создать Программирование сокетов с помощью 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:
Подключите графический интерфейс к существующему классу чата.
Не просто сбрасывайте кучу кода