Write a server and client program using Java language based on Swing and GUI. We need to somehow create a socket that goes from the server to the client, and from the client to the server, and be able to pass some kind of string. I hope to write a function later that performs multiple operations based on the string in the socket. For some reason I can't find a simple code example that shows how to achieve this in a simple way. Does anyone have a simple example or can explain how to achieve this?
Building on this example, here is a simple network client-server pairing using Swing. There are some issues related to correct synchronization to be aware of: The GUI itself is built on the event dispatch thread using invokeLater(). Additionally, this code relies on append() being thread-safe. Finally, I used a handy tip from the article "TextArea Scrolling".
Update: In Java 7, append() is no longer marked as thread-safe; use invokeLater() in display() to sort updates.
[Picture: Echo](https://i.sstatic.net/W32IY.png)
package net; import java.awt.*; import java.awt.event.*; import java.io.*; import java.net.*; import java.util.Scanner; import javax.swing.*; import javax.swing.text.DefaultCaret; /** * A simple network client-server pair * @http://stackoverflow.com/questions/3245805 */ public class Echo implements ActionListener, Runnable { // 常量 private static final String HOST = "127.0.0.1"; private static final int PORT = 12345; // GUI 组件 private final JFrame f = new JFrame(); private final JTextField tf = new JTextField(25); private final JTextArea ta = new JTextArea(15, 25); private final JButton send = new JButton("Send"); // 网络变量 private volatile PrintWriter out; private Scanner in; private Thread thread; // 类型枚举 private Kind kind; public static enum Kind { Client(100, "Trying"), Server(500, "Awaiting"); private int offset; private String activity; private Kind(int offset, String activity) { this.offset = offset; this.activity = activity; } } public Echo(Kind kind) { this.kind = kind; // GUI 设置
The above is the detailed content of How to Create a Simple Swing-based Java Client-Server Application Using Sockets?. For more information, please follow other related articles on the PHP Chinese website!