Socket编程,暴露服务器处理接口

本文详细探讨了Socket编程技术,阐述如何利用Socket创建服务器并设计处理接口。通过实例解析,展示了如何建立连接、收发数据以及实现服务器的稳定运行。适合对网络编程感兴趣的读者进一步提升相关技能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

public class SocketDemo {
    public static void startSocket(int port,DataHanler dataHanler){
        try {
            ServerSocket serverSocket = new ServerSocket(port);
            while (true){
                Socket accept = serverSocket.accept();

                //连接建立,启动客户端,并向客户端发送一条数据
                ClientHnadler clientHnadler = new ClientHnadler(port,accept,dataHanler);
                clientHnadler.start();


            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    public static class ClientHnadler extends Thread{
        private Socket socket;
        private boolean flag = true;
        private DataHanler dataHanler;
         ClientHnadler(int port,Socket socket,DataHanler dataHanler){
            this.socket = socket;
            this.dataHanler = dataHanler;
        }

        @Override
        public void run() {
            super.run();
            //客户端处理程序
            try {
                InputStream inputStream = socket.getInputStream();
                BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream));

                while (true){
                    String content = dataHanler.dataHandler(bufferedReader);
                    OutputStream outputStream = socket.getOutputStream();
                    outputStream.write(content.getBytes());//将服务器返回的数据回送给客户端
                }
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }

    public interface DataHanler{
        String dataHandler(BufferedReader bufferedReader);//将数据处理交给外部
    }
}
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值