วิธีการใช้ InetAddress.isReachable (ที่อยู่สตริง, พอร์ต int, การหมดเวลา int) ของคุณเองใน Java?

เผยแพร่แล้ว: 2020-10-06
ใช้วิธีการ InetAddress.isReachable ของคุณเองใน Java

ใน Java มีหลายวิธีในการตรวจสอบ ping และการตรวจสอบพอร์ต คุณสามารถใช้คำสั่ง ping ของระบบเริ่มต้น ยูทิลิตี้ InetAddress เมธอดดั้งเดิมของ Java, HttpURLConnection และอื่นๆ

ในสภาพแวดล้อมการใช้งานจริงหรือการทดสอบของคุณ หากคุณต้องการตรวจสอบพอร์ตหลาย ๆ ครั้ง สมมติว่ามีการตรวจสอบหลายร้อยรายการพร้อมกัน บางครั้งเมธอด InetAddress.isReachable() ก็ไม่ได้รับการตอบสนองที่ถูกต้อง

กรณีของฉันติดเชื้อ ฉันสังเกตเห็นความล้มเหลว 100% ขณะพยายามเชื่อมต่อกับ www.google.com คุณมีคำถามด้านล่างหรือไม่?

  • java – เหตุใด InetAddress.isReachable จึงคืนค่าเป็นเท็จ เมื่อฉันสามารถ ping ที่อยู่ IP ได้
  • วิธีตรวจสอบว่าฉันมีการเชื่อมต่ออินเทอร์เน็ตหรือไม่
  • ตัวอย่างโค้ด Java สำหรับ java.net.InetAddress.isReachable()
  • java ตรวจสอบว่าสามารถเข้าถึงที่อยู่ IP ได้หรือไม่
  • วิธีทดสอบว่าสามารถเข้าถึงระบบระยะไกลได้หรือไม่?

ทำตามบทช่วยสอนนี้หากคุณต้องการตรวจสอบ ping โดยใช้ HttpURLConnection.openConnection()

ในบทช่วยสอนนี้ เราจะพูดถึง 2 วิธีที่แตกต่างกันในการตรวจสอบ Ping:

  1. InetAddress.isReachable (หมดเวลา) วิธีการ
  2. crunchifyAddressReachable crunchifyAddressReachable(host, port, timeout) ของ Crunchify ซึ่งใช้งานได้ 100% ของเวลาทั้งหมด

มาเริ่มกันเลย:

  1. สร้างคลาส CrunchifyInetAddressIsReachable.java
  2. เราจะสร้าง 2 วิธีคือ pingCheckbyInetAddressisReachable() และ pingCheckbyCrunchifyisReachable() ซึ่งเราจะทำการทดสอบ 2 แบบข้างต้น

เราใช้วิธีการใด crunchifyAddressReachable()

เรากำลังใช้ java.net.Socket ในการใช้งานของเรา คลาสซ็อกเก็ตใช้ซ็อกเก็ตไคลเอนต์ ด้วยความช่วยเหลือของยูทิลิตี้ connect() เราได้รับผลลัพธ์ที่ถูกต้อง 100% โปรดดูรหัสด้านล่างสำหรับรายละเอียดเพิ่มเติม

CrunchifyInetAddressIsReachable.java

เมื่อคุณคัดลอกโค้ดไปยังสภาพแวดล้อม Eclipse เพียงเรียกใช้เป็น Java Application เพื่อดูผลลัพธ์ด้านล่าง

เอาต์พุตคอนโซล: