A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 王广彬 中级黑马   /  2012-8-30 21:54  /  1869 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

public class SendThread implements Runnable {

        private DatagramSocket ds;

        public SendThread(DatagramSocket ds) {
                this.ds = ds;
        }

        @Override
        public void run() {
                // 创建UDP发送端的服务
                try {
                        // 把键盘录入数据用高效缓冲流封装
                        BufferedReader br = new BufferedReader(new InputStreamReader(
                                        System.in));

                        String line = null;
                        while ((line = br.readLine()) != null) {
                                if ("886".equals(line)) {
                                        break;
                                }
                                byte[] bys = line.getBytes();
                                // 数据包
                                DatagramPacket dp = new DatagramPacket(bys, bys.length,
                                                InetAddress.getByName("192.168.1.255"), 12345);
                                // 发送数据
                                ds.send(dp);
                        }

                        // 关闭资源
                        ds.close();
                } catch (IOException e) {
                        e.printStackTrace();
                }
        }
}
输入流br为什么不用关闭啊?

3 个回复

倒序浏览
还是要关闭的吧,有创建流,最终都得关闭掉,不然占资源。
回复 使用道具 举报
需要关闭输入流。
DatagramSocket ds和BufferedReader br都需要关闭。
回复 使用道具 举报
输入流也是调用了操作系统的底层资源,必须要关闭.
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马