要设置接收延时,在延时时间内没收到回复就会抛出异常

解决方案 »

  1.   

    多谢,已解决.rds=new DatagramSocket(8880);           
    byte[] rebuf=new byte[256];
                rdp=new DatagramPacket(rebuf, rebuf.length);
                try {  
                    //设置超时时间,3秒  
                    rds.setSoTimeout(3000);  
                    rds.receive(rdp);
                    msg=new String(rebuf,0,rdp.getLength());         
                    rds.close();        
                 System.out.println("Receive部分完成11111");
                 System.out.println("Receive msg(YES/NO):"+msg);         
                 if(msg.equals("YES"))
                 {
                 /*int option = JOptionPane.showConfirmDialog(null,"点击确认下载或取消","P2P",JOptionPane.YES_NO_OPTION);
                     if (option == JOptionPane.YES_OPTION)
             {
                     download();
             }*/
                 System.out.println("Receive部分完成22222");
                 JOptionPane.showMessageDialog(null, "点击确认下载", null, JOptionPane.OK_OPTION);
                 download();
                
                 }
                 if(msg.equals("NO"))
                 {
                 JOptionPane.showMessageDialog(null, "对方不同意共享此文件!", null, JOptionPane.OK_OPTION);
                 } 
                } catch (Exception e) {
                 rds.close(); 
                 JOptionPane.showMessageDialog(null, "对方无应答!", null, JOptionPane.OK_OPTION);
             System.out.println("对方无应答!"); 
                } 
    贴出来解决后的代码跟大家分享下.