项目冲刺:Socket服务器端

package UsefulSocket;

import java.net.ServerSocket;
import java.net.Socket;
import java.util.ArrayList;

public class SocketServer {
    private static ServerSocket serverSocket = null;
    public static ArrayList<Socket> socketList = new ArrayList<>();


	public static void main(String[] args) {
		// TODO Auto-generated method stub
		try {
            serverSocket = new ServerSocket(4000);
            while (true) {
                Socket s = serverSocket.accept();
                socketList.add(s);
                new Thread(new UserThread(s, socketList)).start();
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
	}
}

  

package UsefulSocket;

import java.io.InputStream;
import java.io.OutputStream;
import java.net.Socket;
import java.util.ArrayList;

public class UserThread implements Runnable{

	ArrayList<Socket> socketList;
    Socket socket;
    InputStream receive;
    OutputStream send;

    public UserThread(Socket s, ArrayList<Socket> sockets) {
        socketList = sockets;
        this.socket = s;
    }

	
	@Override
	public void run() {
		// TODO Auto-generated method stub
		try {
            int len;
            byte[] b = new byte[1024 * 3];
            receive = socket.getInputStream();
            send = socket.getOutputStream();
            while (true) {
                while ((len = receive.read(b)) != -1) {
                    for (Socket sk : socketList) {
                        try {
                            if (sk.equals(socket)) {
                                continue;
                            }
                            OutputStream outputStream = sk.getOutputStream();
                            outputStream.write(b);
                        } catch (Exception e) {
                        	e.printStackTrace();
                        }
                    }
                }
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
	}

}

  

posted @ 2021-04-23 22:18  新古董  阅读(27)  评论(0)    收藏  举报