-
功能:简单的客户端和服务器互发信息。
-
服务器端:
import javax.swing.*; import java.net.*; import java.awt.BorderLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.io.*; //服务器端 public class MyServer extends JFrame implements ActionListener{ JTextArea jta = null; JScrollPane jsp = null; JTextField jtf = null; JButton jb = null; JPanel jp = null; //把信息发送给客户端的信息 PrintWriter pw = null; //主方法 public static void main(String[] args) { MyServer ms = new MyServer(); } //构造器 public MyServer(){ this.setTitle("简易聊天--服务器端"); this.setLocation(500, 100); this.setResizable(false); jta = new JTextArea(); jsp = new JScrollPane(jta); jtf = new JTextField(10); jb = new JButton("发送"); jb.addActionListener(this); jp = new JPanel(); jp.add(jtf); jp.add(jb); this.add(jsp,BorderLayout.CENTER); this.add(jp,BorderLayout.SOUTH); this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); this.setSize(300, 200); this.setVisible(true); try { //服务器监听 ServerSocket ss = new ServerSocket(9999); //等待客户端连接 Socket s = ss.accept(); InputStreamReader isr = new InputStreamReader(s.getInputStream()); BufferedReader br = new BufferedReader(isr); pw = new PrintWriter(s.getOutputStream(),true); //读取从客户端发来的信息 while(true){ //读取从客户端发来的信息 String info = br.readLine(); jta.append("客户端对服务器说:"+info+"\r\n"); } } catch (IOException e) { e.printStackTrace(); } } @Override public void actionPerformed(ActionEvent e) { //如果用户按下发送信息按钮 if(e.getSource()==jb){ //把服务器在jtf写的内容发送给客户端 String info = jtf.getText(); jta.append("服务器对客户端说:"+info+"\r\n"); pw.println(info); //清空发送框内容 jtf.setText(""); } } }
-
客户端:
import javax.swing.*; import java.net.*; import java.awt.BorderLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.io.*; //客户机端 public class MyClient extends JFrame implements ActionListener{ JTextArea jta = null; JScrollPane jsp = null; JTextField jtf = null; JButton jb = null; JPanel jp = null; PrintWriter pw = null; //主方法 public static void main(String[] args) { MyClient ms = new MyClient(); } //构造器 public MyClient(){ this.setTitle("简易聊天--客户机端"); this.setResizable(false); this.setLocation(100, 100); jta = new JTextArea(); jsp = new JScrollPane(jta); jtf = new JTextField(10); jb = new JButton("发送"); jb.addActionListener(this); jp = new JPanel(); jp.add(jtf); jp.add(jb); this.add(jsp,BorderLayout.CENTER); this.add(jp,BorderLayout.SOUTH); this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); this.setSize(300, 200); this.setVisible(true); try { Socket s = new Socket("127.0.0.1",9999); InputStreamReader isr = new InputStreamReader(s.getInputStream()); BufferedReader br = new BufferedReader(isr); pw = new PrintWriter(s.getOutputStream(),true); while(true){ //不停地读取从服务器端发来的信息 String info = br.readLine(); jta.append("服务器对客户端说:"+info+"\r\n"); } } catch (UnknownHostException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } @Override public void actionPerformed(ActionEvent e) { if(e.getSource()==jb){ String info = jtf.getText(); //把客户端发送的信息显示在jfa jta.append("客户端对服务器说:"+info+"\r\n"); pw.println(info); jtf.setText(""); } } }
简易客户端--服务器聊天程序
最新推荐文章于 2024-01-12 10:14:10 发布