DatagramSocket.receive()方法无响应的解决

之前看网上说用发送命令行的方式获取客户端的mac地址,具体方法不复述了。

其中用到这个receive()方法,朋友在测试的时候发现会无响应,发现是window的系统防火墙开启以后出现的。

无法保证每个用户都是关闭系统防火墙的,所以看了一下api,发现一个解决方法。

直接贴代码看吧

[java] view
plain
copyprint?

  1. DatagramSocket ds=new DatagramSocket();  
  2.   
  3.     DatagramPacket dpk = new DatagramPacket(tcpNs, tcpNs.length, InetAddress.getByName(ip), iRemotePort);  
  4.     ds.send(dpk);  
  5.     DatagramPacket dp = new DatagramPacket(buffer, buffer.length);  
  6.     try {  
  7.         //设置超时时间,2秒  
  8.         ds.setSoTimeout(2000);  
  9.         ds.receive(dp);  
  10.     } catch (Exception e) {  
  11.         return "";  
  12.     }  

DataRamSocket.setSoTimeout(2000);  就是这个方法了

API介绍如下,好了问题解决。

setSoTimeout

public void setSoTimeout(int timeout)
                  throws SocketException
启用/禁用带有指定超时值的 SO_TIMEOUT,以毫秒为单位。将此选项设为非零的超时值时,对此 DatagramSocket 调用 receive() 将只阻塞此时间长度。如果超过超时值,将引发 java.net.SocketTimeoutException,虽然 DatagramSocket 仍旧有效。选项必须在进入阻塞操作前被启用才能生效。超时值必须是 > 0 的数。超时值为 0 被解释为无穷大超时值。

参数:
timeout - 指定的以毫秒为单位的超时值。
抛出:
SocketException - 如果底层协议出现错误,例如 UDP 错误。
时间: 2024-12-22 10:34:48

DatagramSocket.receive()方法无响应的解决的相关文章

dreamweaver打开后无响应的解决方法

解决|dreamweaver|无响应 启动Dreamweaver时程序后无响应的解决方法 打开一半就无响应,重装也不行.频繁地使用Dreamweaver,由于大量繁琐的工作,导致在随后启动Dreamweaver时程序打开后就没有任务响应,CPU.内存暴涨.时间紧.任务重,当时心情非常糟糕,还有很多的网页没做好.将Dreamweaver程序重新安装,依然是这样,这样弄了2次都还不行,依然不能解决.我想这不是重装就可以解决的,后来想到一点,到系统文件里面将这相关的应用程序删除,然后再运行看一看,我进

javasciprt下jquery函数$.post执行无响应的解决方法

 这篇文章主要介绍了javasciprt下jquery函数$.post执行无响应的解决方法,需要的朋友可以参考下 在编写javascirpt程序过程中,用$.post方法发送数据,若数据中字符含有'<',将导致$.post无法成功执行.   代码如下: var jsonstr='{"value":"abcd<efg"}';  $.post(  url,  { "jsonstr": jsonstr },  function (data,

电脑运行刺客信条4黑屏死机或提示程序无响应的解决方法

  有许多玩家在网上下载了<刺客信条4:黑旗>游戏,结果在电脑上运行游戏程序后,出现了黑屏死机的现象,或者提示此程序无响应,那么就无法在电脑上玩刺客信条4游戏了.要想解决这个问题,可参考以下提供的解决方法. 1.首先解压或者安装游戏至需要的位置(最好都是英文目录); 2.从网上下载需要的修复补丁nvapi.dll; 3.将下载的dll文件放到游戏文件目录中,并重新打开刺客信条4游戏程序即可. 以上就是关于电脑运行刺客信条4黑屏死机或提示程序无响应的解决方法,希望能够帮到大家.

jQuery on()方法绑定动态元素的点击事件无响应的解决办法_jquery

$('#check_all').on('click' , function(){ alert(1); }); $("#yujinlist").append(html); count++; } 以上代码执行时,点击#check_all时,alert一直没反应,后在网上查资料时,才知道on前面的元素也必须在页面加载的时候就存在于dom里面, 那原话是这样的: 支持给动态元素和属性绑定事件的是live和on,其中live在JQUERY 1.7之后就不推荐使用了.现在主要用on,使用on的时候

fck 上传图片无响应未能解决方法

fck 上传图片无响应未能解决方法 前者的错误犯的比较白痴,居然是因为bin中没有fckeditor.dll,唉!拷贝一份进来即可! 后者发生的原因可能大家各有不同,我这边是将/filemanager/connectors/asp教程x/connector.aspx和/filemanager/connectors/aspx/upload.aspx两个页面的开始位置加上theme=""和stylesheettheme="",修改后为: <%@pagelangua

win8系统无响应怎么解决?

   win8系统无响应怎么解决?          1.首先在win8桌面上按键盘上的"Office按键+i"组合快捷键,打开设置窗口,然后选择"控制面板"选项; 2.然后在控制面板的界面中选择并打开"程序和功能"; 3.接着在弹出的"程序和功能"窗口中,选择左侧窗口的"启用或关闭Windows功能"; 4.选中".ET Framework3.5(包括NET 2.0和3.0)"之后并按

windows8系统无响应的解决方法

随着Win8系统安装用户越来越多,对于win8电脑各种问题也接踵而来.或许是因为目前Win8系统正式版还未正式发布,不少用户遇到了比较奇怪的 Win8系统故障,Windows8系统中偶尔会出现程序无响应并且无法关闭问题.对于这个问题,很多用户找不到原因,网上教程也较少,今天黑白网小编就来跟大家讲解Windows8系统出现程序错误并且不能关闭的解决办法. 有时候造成这种奇怪的问题,往往是由于大部分软件需要环境启动类软件,比如VC++或者.NET Framework 2.0或者更高版本作为启动环境,

Android ListView的item背景色设置和item点击无响应的解决方法_Android

下面讲解以下在使用listview时最常见的几个问题.1.如何改变item的背景色和按下颜色 listview默认情况下,item的背景色是黑色,在用户点击时是黄色的.如果需要修改为自定义的背景颜色,一般情况下有三种方法: 1)设置listSelector 2)在布局文件中设置item的background 3)在adapter的getview中设置 这三种方法都能达到改变item默认的背景色和按下颜色,下面来分别讲解,但是在这之前需要先写好selector.xml文件; 复制代码 代码如下:

tplink路由器WAN口提示“服务器无响应”的解决办法

问题介绍 设置路由器上网时,路由器WAN口PPPoE拨号不成功,WAN口状态出现"服务器无响应"的提示,如下图: 解决办法     请按照以下方法排查: 可能原因:线路接错或者网线接口接触不良. 解决办法:请根据您的入户宽带线路类型,确认线路连接正确,如下:(下面以电话接入为例子)     如果线路连接正常,但WAN口指示灯不亮,检查是否网线接口接触不良,请换一条网线尝试. 确保电脑直接连接宽带可以正常上网,排除宽带线路问题. 可能原因:宽带线路的上网方式不是PPPoE拨号上网. 解决