标签:
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 }
标签:
原文地址:http://www.cnblogs.com/zhang117/p/5134377.html