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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 唐林渊 黑马帝   /  2012-4-1 14:22  /  1655 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

class Send implements Runnable
{
        private DatagramSocket ds;
        public Send(DatagramSocket ds)
        {
                this.ds = ds;
        }


        public void run()
        {
                try
                {
                        BufferedReader bufr = new BufferedReader(new InputStreamReader(System.in));

                        String line = null;

                        while((line=bufr.readLine())!=null)
                        {
                               

                                byte[] buf = line.getBytes();

                                DatagramPacket dp =
                                        new DatagramPacket(buf,buf.length,InetAddress.getByName("192.168.1.255"),10002);

                                ds.send(dp);

                                if("886".equals(line))                                                                       这个地方的886是先发送出去了,对吗.然后才停止的,如果if放在上面就是直接停止,不会发送出去???
                                        break;
                        }
                }
                catch (Exception e)
                {
                        throw new RuntimeException("发送端失败");
                }
        }
}

1 个回复

倒序浏览
不是,886是你事先想好的键盘录入结束标记,也就是说,你把所有数据录入完毕后你才会输入一个“886”,
这些数据发送到接收端后,如果正好被接收端接收,它将依次读取传过来的数据,当它读到886时,它就认为后面没有数据传过来了 。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马