服务端
package 单人聊天;import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.PrintStream;
import java.net.ServerSocket;
import java.net.Socket;
import javax.swing.JFrame;
import javax.swing.JTextArea;
import javax.swing.JTextField;public class AServer extends JFrame implements ActionListener,Runnable {private int Port = 9999;private ServerSocket SS;private Socket socket;private JTextArea area = new JTextArea("聊天内容:"+'\n');private JTextField field = new JTextField("");public AServer(){this.setTitle("服务器");this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);this.add(area,BorderLayout.CENTER);this.add(field,BorderLayout.NORTH);field.addActionListener(this);this.setSize(190, 200);this.setVisible(true);try{ SS = new ServerSocket(Port);socket = SS.accept();new Thread(this).start();}catch(Exception ex){ } }public void run(){try{while(true){InputStream is = socket.getInputStream();BufferedReader br = new BufferedReader(new InputStreamReader(is));String str = br.readLine(); area.append(str + '\n'); } }catch(Exception ex){ }}public void actionPerformed(ActionEvent e){try{OutputStream os = socket.getOutputStream();PrintStream ps = new PrintStream(os);ps.println("服务器说:" + field.getText());field.setText("");}catch(Exception ex){ }} public static void main(String[] args){new AServer();}
}
客户端
package 单人聊天;import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.PrintStream;
import java.net.InetAddress;
import java.net.Socket;
import javax.swing.JFrame;
import javax.swing.JTextArea;
import javax.swing.JTextField;public class Aclient extends JFrame implements ActionListener, Runnable {private Socket socket1;private int Port1 = 9999;private InetAddress ip1;private JTextArea area1 = new JTextArea("聊天内容:\n");private JTextField field1 = new JTextField("");public Aclient(){this.setTitle("客户端");this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);this.add(field1,BorderLayout.NORTH);field1.addActionListener(this);this.add(area1, BorderLayout.CENTER); this.setSize(190, 200);this.setVisible(true);try{ip1 = InetAddress.getByName("Localhost");socket1 = new Socket(ip1,Port1);OutputStream os = socket1.getOutputStream();PrintStream ps = new PrintStream(os);ps.println("客户端连接");new Thread(this).start(); }catch (Exception ex){ }}public void run1(){try{while(true){InputStream is = socket1.getInputStream();BufferedReader bf = new BufferedReader(new InputStreamReader(is));String str = bf.readLine();area1.append(str + '\n');}}catch (Exception ex){ }}public void actionPerformed1(ActionEvent e){try{OutputStream os = socket1.getOutputStream();PrintStream ps = new PrintStream(os);ps.println("客户端说:" + field1.getText());field1.setText("");}catch (Exception ex){}}public static void main1(String[] args) {new Aclient();}private Socket socket;private int Port = 9999;private InetAddress ip;private JTextArea area = new JTextArea("聊天内容:\n");private JTextField field = new JTextField("");public void Aclient1(){this.setTitle("客户端");this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);this.add(field1,BorderLayout.NORTH);field1.addActionListener(this);this.add(area1, BorderLayout.CENTER); this.setSize(190, 200);this.setVisible(true);try{ip1 = InetAddress.getByName("Localhost");socket1 = new Socket(ip1,Port1);OutputStream os = socket1.getOutputStream();PrintStream ps = new PrintStream(os);ps.println("客户端连接");new Thread(this).start(); }catch (Exception ex){ }}public void run(){try{while(true){InputStream is = socket1.getInputStream();BufferedReader bf = new BufferedReader(new InputStreamReader(is));String str = bf.readLine();area1.append(str + '\n');}}catch (Exception ex){ }}public void actionPerformed(ActionEvent e){try{OutputStream os = socket1.getOutputStream();PrintStream ps = new PrintStream(os);ps.println("客户端说:" + field1.getText());field1.setText("");}catch (Exception ex){}}public static void main(String[] args) {new Aclient();}
}
服务端的窗口
客户端窗口