服务器

 1 import java.io.BufferedReader;
 2 import java.io.IOException;
 3 import java.io.InputStreamReader;
 4 import java.io.PrintWriter;
 5 import java.net.ServerSocket;
 6 import java.net.Socket;
 7 import java.util.ArrayList;
 8 
 9 import com.sun.xml.internal.bind.v2.runtime.unmarshaller.XsiNilLoader.Array;
10 
11 public class Myset {
12 
13     public static void main(String[] args) {
14 
15         // 定义一个集合
16         final ArrayList<Socket> ss = new ArrayList<Socket>();
17         try {
18             // 设置服务器的端口号
19             ServerSocket s = new ServerSocket(8888);
20 
21             while (true) {
22                 System.out.println("等待接收一个新用户的请求");
23                 // 定义socket接收
24                 final Socket socket = s.accept();
25                 // 把接收到的放到结合中去
26                 ss.add(socket);
27                 // 开启线程
28                 new Thread() {
29 
30                     public void run() {
31                         try {
32                             // 读取发送过来的东西
33                             BufferedReader b = new BufferedReader(
34                                     new InputStreamReader(
35                                             socket.getInputStream(), "utf-8"));
36                             // 利用循环多次接受
37                             while (true) {
38                                 // 把读到的值付给data
39                                 String data = b.readLine();
40                                 // 新建一个socket 比对集合中你接收到的客户端
41                                 for (Socket sk : ss) {
42 
43                                     // 这个判断是不给自己发
44                                     // if (sk != socket) {
45                                     // 创建输出流
46                                     PrintWriter pw = new PrintWriter(
47                                             sk.getOutputStream());
48 
49                                     // 把date的值发送出去
50                                     pw.println(data + "123");
51                                     System.out.println(data + "123");
52                                     // 刷新
53                                     pw.flush();
54 
55                                     // }
56                                 }
57                             }
58 
59                         } catch (Exception e) {
60                             // TODO Auto-generated catch block
61                             e.printStackTrace();
62                         }
63 
64                     };
65                 }.start();
66             }
67 
68         } catch (Exception e) {
69             // TODO Auto-generated catch block
70             e.printStackTrace();
71         }
72 
73     }
74 
75 }
原文地址:https://www.cnblogs.com/3674-it/p/5134377.html