服务器
来源:互联网 发布:mac桌面文件放进文件夹 编辑:程序博客网 时间:2024/04/25 21:28
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 // 把读到的值付给data39 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 block61 e.printStackTrace();62 }63 64 };65 }.start();66 }67 68 } catch (Exception e) {69 // TODO Auto-generated catch block70 e.printStackTrace();71 }72 73 }74 75 }
0 0