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

© 凝聚 中级黑马   /  2013-12-1 16:27  /  1324 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 凝聚 于 2013-12-1 16:54 编辑

package twenty_three;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.*;
class Send  implements Runnable
{
        private DatagramSocket dss;
        public  Send(DatagramSocket dss)
        {
                this.dss=dss;
        }
        private void run()/////////////////////////////////////
        {
                try
                {
                        BufferedReader bufer=new BufferedReader(new InputStreamReader(System.in));
                        String line=null;
                        while((line=bufer.readLine())!=null)
                        {
                                if("886".equals(line))
                                        break;
                                byte[]buf=line.getBytes();
                                DatagramPacket dpp=new DatagramPacket(buf,buf.length,InetAddress.getByName("192.168.106.255"),6252);//255是广播地址
                                dss.send(dpp);
                        }
                }
                catch(Exception e)
                {
                        throw new RuntimeException("发送端失败");
                }
        }
        
}
class Rece implements Runnable
{
        private DatagramSocket dss;
        public Rece(DatagramSocket dss)
        {
                this.dss=dss;
        }
        private void run()///////////////////////////////
        {
                try
                {
                        while(true)
                        {
                        byte[]buf=new byte[1024];
        DatagramPacket dpp=new DatagramPacket(buf,buf.length);
        dss.receive(dpp);
        String ip=dpp.getAddress().getHostAddress();
        String data=new String(dpp.getData(),0,dpp.getLength());
        System.out.println(ip+":::"+data);
                }
                }
                catch(Exception e)
                {
                        throw new RuntimeException("接受端失败");
                }
        }
        
}
public class Ten {
        public static void main(String[] args) throws Exception{
DatagramSocket sendSocket =new DatagramSocket();
DatagramSocket receSocket=new DatagramSocket(6532);
new Thread(new Send(sendSocket)).start();
new Thread(new Rece(receSocket)).start();
        }

}这段代码被//标注的Run()方法这总有红线错误“Cannot reduce the visibility of the inherited method from Runnable”请问这是什么原因?

评分

参与人数 1技术分 +1 黑马币 +6 收起 理由
枫儿 + 1 + 6 神马都是浮云

查看全部评分

3 个回复

正序浏览
本帖最后由 25343215 于 2013-12-1 16:40 编辑

网速不好,多点几点,重复发帖了。。。。
回复 使用道具 举报
本帖最后由 25343215 于 2013-12-1 16:40 编辑

网速不好,多点几下,重复发帖了。。。。
回复 使用道具 举报
本帖最后由 25343215 于 2013-12-1 16:39 编辑

错误信息:Cannot reduce the visibility of the inherited method from Runnable
中文翻译:不能减少Runnable继承方法的可见性。

错误的原因是:楼主的接收端、发送端类里,run方法被private化了,应该是public run(){  }
也就是说,子类实现接口里面的方法,不能减小原方法里面的方法权限。但是可以大于原来的方法权限。

评分

参与人数 1技术分 +1 黑马币 +6 收起 理由
枫儿 + 1 + 6 赞一个!

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马