1. 目标:实现两个用户之间的通信,利用的是简单的Socket知识以及简略界面

2. 界面:分为客户端与服务器端(如下图)

网络Socket编程(简易qq实现之C/S通信1)

网络Socket编程(简易qq实现之C/S通信1)

3. 基本功能:客户端先向服务器端发送一个消息,这样就可以让客户端与服务器端实现持续通信

4. 代码实现:

(1)服务器端代码

 1 package com.test;
 2 
 3 import java.awt.event.ActionEvent;
 4 import java.awt.event.ActionListener;
 5 import java.io.BufferedReader;
 6 import java.io.IOException;
 7 import java.io.InputStreamReader;
 8 import java.io.PrintWriter;
 9 import java.net.ServerSocket;
10 import java.net.Socket;
11 
12 import javax.swing.JButton;
13 import javax.swing.JFrame;
14 import javax.swing.JPanel;
15 import javax.swing.JScrollPane;
16 import javax.swing.JTextArea;
17 import javax.swing.JTextField;
18 
19 public class QQServer extends JFrame implements ActionListener{
20     JTextArea jta;
21     JTextField jtf;
22     JButton jb;
23     JScrollPane jsp;
24     JPanel jpn;
25     
26     PrintWriter pw;
27     /**
28      * @param args
29      */
30     public static void main(String[] args) {
31         QQServer qq = new QQServer();
32         qq.init();
33     }
34     public QQServer(){
35         //页面布局
36         jta = new JTextArea();
37         jtf = new JTextField(10);
38         jb  = new JButton("发送");
39         jb.addActionListener(this);//事件监听
40         jsp = new JScrollPane(jta);
41         jpn = new JPanel();
42         
43         jpn.add(jtf);
44         jpn.add(jb);
45         
46         this.add(jsp,"Center");
47         this.add(jpn,"South");
48         this.setTitle("简易qq服务器端");
49         
50         this.setSize(300,200);
51         this.setVisible(true);
52     }
53     public void init(){
54         try {
55             //服务器监听端口
56             System.out.println("服务器在监听.....");
57             ServerSocket ss = new ServerSocket(9992);
58             Socket s = ss.accept();
59             //服务器接收流
60             InputStreamReader isr = new InputStreamReader(s.getInputStream());
61             BufferedReader br = new BufferedReader(isr);
62             //服务器输出
63             pw = new PrintWriter(s.getOutputStream(), true);
64             while (true) {
65                 //持续接收从客户端信息并显示
66                 String info = br.readLine();
67                 jta.append("客户端对服务器端说:"+info+"\r\n");
68             }
69         } catch (Exception e) {
70             // TODO: handle exception
71         }
72     }
73     @Override
74     public void actionPerformed(ActionEvent e) {
75         //在Jtextfield内获取文字,并发送给客户端
76         if(e.getSource()==jb){
77             String msg = jtf.getText();
78             jta.append("服务器对客户端说:"+msg+"\r\n");
79             pw.println(msg);
80             jtf.setText("");
81         }
82         
83     }
84 
85 }
View Code

相关文章:

  • 2021-11-11
  • 2022-02-27
  • 2022-12-23
  • 2021-07-23
  • 2021-12-16
  • 2022-12-23
  • 2021-06-12
  • 2021-12-23
猜你喜欢
  • 2022-12-23
  • 2021-09-04
  • 2022-12-23
  • 2021-04-03
  • 2022-12-23
  • 2022-12-23
  • 2021-07-19
相关资源
相似解决方案