本文为大家分享了模拟 ping 操作的一个 java 类 , 具体内容如下
استيراد java.io.ioException ؛ استيراد java.net.inetaddress ؛ استيراد java.net.unknownhostexception ؛ /** * تم إنشاؤه بواسطة Qiuju * في 2014/9/21. */الفئة العامة Simpleping الأدوات Runnable {private Final Object Mendlock = new Object () ؛ منطقية خاصة isend = false ؛ private int incount = 0 ؛ عدد int الخاص مهلة خاصة ؛ اسم السلسلة الخاصة ؛ خاص int mendcount ؛ سلسلة خاصة mip = فارغة ؛ تعويم خاص mlossrate = 1f ؛ تعويم خاص mdelay = 0 ؛ Public Simpleing (اسم السلسلة ، عدد int ، int timeout) {count = mendcount = count ؛ مهلة = مهلة ؛ الاسم = الاسم ؛ لـ (int i = 0 ؛ i <mendcount ؛ i ++) {thread thread = new thread (this) ؛ thread.setdaemon (صواب) ؛ thread.start () ؛ } if (! isend) {try {synchronized (mendlock) {mendlock.wait () ؛ }} catch (interruptedException e) {E.PrintStackTrace () ؛ }}} setend private void (boolean isarrived ، تأخير طويل ، سلسلة IP) {synchronized (mendlock) {count-- ؛ if (isArRived) {concount ++ ؛ Mdelay = (Mdelay + Delay) / 2f ؛ إذا (IP! = null) mip = ip ؛ }} if (count == 0) setend () ؛ } private void setend () {mlossrate = (mendcount - contcount) / mendcount ؛ isend = صحيح ؛ متزامن (mendlock) {mendlock.notifyall () ؛ }} Override public void run () {long delay = 0 ؛ منطقية isarrived = false ؛ سلسلة IP = NULL ؛ حاول {long startTime = system.currentTimeMillis () ؛ inetaddress address = inetaddress.getByName (name) ؛ isArRived = address.isreachable (timeout) ؛ التأخير = system.currentTimeMillis () - وقت البدء ؛ IP = address.gethostaddress () ؛ } catch (unknownHostException e) {E.PrintStackTrace () ؛ } catch (ioException e) {E.PrintStackTrace () ؛ } catch (استثناء e) {E.PrintStackTrace () ؛ } أخيرًا {setend (isArRived ، Delay ، IP) ؛ }} السلسلة العامة getip () {return mip ؛ } تعويم العام getLossrate () {return mlossrate ؛ } العائم العام getDelay () {return mdelay ؛ } getissucceed boolean public () {return contcount> 0 ؛ }} : :
وقت بدء طويل = system.currentTimeMillis () ؛ inetaddress address = inetaddress.getByName (name) ؛ isArRived = address.isreachable (timeout) ؛ التأخير = system.currentTimeMillis () - وقت البدء ؛ IP = address.gethostaddress () ؛
: : العنوان. القابل للتشغيل (مهلة) ؛ 方法 , 但是这个方法有一定局限性;当是 但是这个方法有一定局限性;当是 模式下会发送 icmp 进行 ping 操作 , 这就比较真实了;但是如果是非 这就比较真实了;但是如果是非 socket 进行的模拟。
之所以说是中间类 , 也就是因为这个原因没有采用这个类。
以上就是本文的全部内容 , 希望对大家的学习有所帮助。