java网络编程测试demo

import java.io.InputStream;
import java.net.ServerSocket;
import java.net.Socket;

public class Server {
    public static final int port = 7002;//监听的端口号

    public static void main(String[] args) {
        System.out.println("Server...\n");
        Server server = new Server();
        server.init();
    }

    public void init() {
        try {
            //创建一个ServerSocket,这里可以指定连接请求的队列长度
            //new ServerSocket(port,3);意味着当队列中有3个连接请求是,如果Client再请求连接,就会被Server拒绝
            ServerSocket serverSocket = new ServerSocket(port);
            while (true) {
                //从请求队列中取出一个连接
                Socket client = serverSocket.accept();
                // 处理这次连接
                new HandlerThread(client);
            }
        } catch (Exception e) {
            System.out.println("服务器异常: " + e.getMessage());
        }
    }

    private class HandlerThread implements Runnable {
        private Socket socket;
        public HandlerThread(Socket client) {
            socket = client;
            new Thread(this).start();
        }

        public void run() {
            try {
                // 读取客户端数据
                InputStream inputStream = socket.getInputStream();
                byte[] bytes = new byte[2048];
                int i = 0;
                if (inputStream.read(bytes)!=-1){
                    String s = new String(bytes);
                    System.out.println(s);
                }
//                BufferedReader input = new BufferedReader(new InputStreamReader(socket.getInputStream()));
//                String clientInputStr = input.readLine();//这里要注意和客户端输出流的写方法对应,否则会抛 EOFException
//                // 处理客户端数据
//                System.out.println("客户端发过来的内容:" + clientInputStr);
//
//                // 向客户端回复信息
//                PrintStream out = new PrintStream(socket.getOutputStream());
//                System.out.print("请输入:\t");
//                // 发送键盘输入的一行
//                String s = new BufferedReader(new InputStreamReader(System.in)).readLine();
//                out.println(s);
//
//                out.close();
//                input.close();
            } catch (Exception e) {
                System.out.println("服务器 run 异常: " + e.getMessage());
            } finally {
                if (socket != null) {
                    try {
                        socket.close();
                    } catch (Exception e) {
                        socket = null;
                        System.out.println("服务端 finally 异常:" + e.getMessage());
                    }
                }
            }
        }
    }
}

猜你喜欢

转载自blog.csdn.net/m0_37732829/article/details/111378605
今日推荐