ข้อดีประการหนึ่งของภาษา Java ก็คือโปรแกรม Java สามารถเข้าถึงทรัพยากรเครือข่ายได้ Java จัดเตรียมชุดของคลาสเพื่อรองรับโปรแกรม Java ในการเข้าถึงทรัพยากรเครือข่าย
โปรโตคอล TCP/IP และที่อยู่ IP
ในการสื่อสารบนอินเทอร์เน็ต ทั้งสองฝ่ายที่สื่อสารกันจะต้องปฏิบัติตามโปรโตคอลการสื่อสาร โปรโตคอลที่ใช้กันอย่างแพร่หลายในปัจจุบันคือโปรโตคอล TCP/IP ซึ่งเป็นโปรโตคอลสาธารณะที่ทุกฝ่ายในอินเทอร์เน็ตติดตาม ) คือโปรโตคอลควบคุมการส่งข้อมูล และ IP (Internet Protocol) คือโปรโตคอลอินเทอร์เน็ต และ TCP/IP แสดงถึงโปรโตคอลทั้งสองนี้
TCP/IP แบ่งออกเป็น 4 ระดับ:
โปรโตคอล TCP ถือว่าการส่งข้อมูลเครือข่ายเป็นการไหลของข้อมูล ตัวอย่างเช่น หากมีการส่งข้อความยาวจากเครื่อง A ไปยังเครื่อง B ผู้ส่ง A จำเป็นต้องแยกส่วนข้อมูลและแพ็กเกจ และส่งข้อมูลแต่ละชิ้นแยกกัน แพ็กเก็ตข้อมูลมีส่วนหัวที่ระบุตำแหน่งที่แพ็กเก็ตข้อมูลถูกส่งและตำแหน่งของข้อมูลในลำดับการรับ แต่ละแพ็กเก็ตจะถูกส่งจากเครื่องหนึ่งไปยังอีกเครื่องหนึ่ง หรือจากโหนดเครือข่ายหนึ่งไปยังโหนดเครือข่ายอื่นตามปลายทางที่ให้ไว้โดยที่อยู่ IP ที่จุดรับ B แพ็กเก็ตข้อมูลเหล่านี้สามารถประกอบกลับคืนตามลำดับที่ถูกต้อง
โปรโตคอล TCP/IP เป็นชุดโปรโตคอลที่ประกอบด้วยชุดโปรโตคอล ซึ่งส่วนใหญ่รวมถึงโปรโตคอลที่เฉพาะเจาะจงมากขึ้นดังต่อไปนี้:
Telnet (การเข้าสู่ระบบระยะไกล): อนุญาตให้ผู้ใช้คอมพิวเตอร์เข้าสู่ระบบคอมพิวเตอร์ระยะไกลเครื่องอื่น ทำให้การทำงานระยะไกลเหมือนกับว่าพวกเขากำลังทำงานบนคอมพิวเตอร์เฉพาะที่
FTP (โปรโตคอลการถ่ายโอนไฟล์): อนุญาตให้ผู้ใช้คัดลอกไฟล์บนโฮสต์ระยะไกลไปยังคอมพิวเตอร์ของตนเอง
SMTP (Simple Mail Transfer Protocol): ใช้เพื่อถ่ายโอนอีเมล
NFS (เซิร์ฟเวอร์ไฟล์เครือข่าย): ช่วยให้คอมพิวเตอร์หลายเครื่องสามารถเข้าถึงไดเรกทอรีของกันและกันได้อย่างโปร่งใส
HTTP: โปรโตคอลการถ่ายโอนไฮเปอร์เท็กซ์ซึ่งใช้โปรโตคอล TCP/IP และเป็นโปรโตคอลการสื่อสารเลเยอร์แอปพลิเคชันระหว่างเบราว์เซอร์ WWW และเซิร์ฟเวอร์ HTTP เป็นโปรโตคอลเชิงวัตถุ ไร้สัญชาติ มีวัตถุประสงค์ทั่วไป เซสชัน HTTP (ธุรกรรม) ประกอบด้วยสี่ขั้นตอน: การเชื่อมต่อ คำขอ การตอบสนอง และการปิด
ภาษา Java สามารถเขียนแอปพลิเคชันเครือข่ายระดับต่ำได้ ตัวอย่างเช่น ถ่ายโอนไฟล์ สร้างตัวควบคุมเมล ประมวลผลข้อมูลเครือข่าย ฯลฯ โปรโตคอลอินเทอร์เน็ตที่รองรับภาษา Java ได้แก่ ftp, telnet, www ฯลฯ ซอฟต์แวร์ที่รองรับการสื่อสารเครือข่ายอยู่ในแพ็คเกจ java.net เช่น java.net.ftp, java.net.www เป็นต้น
ที่อยู่ IP ใช้เพื่อระบุที่อยู่ของคอมพิวเตอร์บนอินเทอร์เน็ตในเครือข่าย โดยใช้รหัสไบนารี่ 32 บิตเพื่อแสดงที่อยู่เครือข่าย ที่อยู่แบ่งออกเป็นห้าประเภท: A, B, C, D และ E หมวดหมู่ที่ใช้บ่อยที่สุดคือ A, B และ C:
A (1.0.0.0-126.255.255.255): หมายเลขเครือข่าย 0,7 หลัก 24 หลักสุดท้ายคือหมายเลขโฮสต์
B (128.0.0.0-191.255.255.255): 10, หมายเลขเครือข่าย 14 หลัก, 16 หลักสุดท้ายคือหมายเลขโฮสต์;
C (192.0.0.0-223.255.255.255): 110, หมายเลขเครือข่าย 21 หลัก, 8 หลักสุดท้ายคือหมายเลขโฮสต์;
D (224.0.0.0-239.255.255.255): 1110, หมายเลขกลุ่มมัลติคาสต์ 28 บิต;
E (240.0.0.0-254.255.255.255): 1111 สงวนไว้สำหรับใช้ในการทดสอบ
โดยปกติแล้ว ที่อยู่ IP จะแสดงด้วยเลขทศนิยมสี่ส่วน (หนึ่งส่วนมี 8 หลัก) ตัวอย่างเช่น:
58.218.204.252
หรือแสดงด้วยชื่อโดเมนข้อความ ตัวอย่างเช่น:
www.VeVB.COm
บนอินเทอร์เน็ต เซิร์ฟเวอร์ชื่อโดเมน (DNS) ทำการแมปชื่อตามตัวอักษรกับที่อยู่เครือข่ายแบบไบนารี
คลาส InetAddress
มีคำจำกัดความของคลาส InetAddress ในแพ็คเกจ Java.net วัตถุของคลาส InetAddress ใช้สำหรับที่อยู่ IP และชื่อโดเมน คลาสนี้มีวิธีการดังต่อไปนี้:
getByName(String s): รับอ็อบเจ็กต์ของคลาส InetAddress ซึ่งมีที่อยู่ IP และชื่อโดเมนของโฮสต์ อ็อบเจ็กต์แสดงข้อมูลที่มีอยู่ในรูปแบบต่อไปนี้: www.sina.com.cn/202.108.37.40;
สตริง getHostName(): รับชื่อโดเมนของวัตถุ InetAddress
สตริง getHostAddress(): รับที่อยู่ IP ของวัตถุ InetAddress
getLocalHost(): รับวัตถุ InetAddress ซึ่งมีชื่อโดเมนและที่อยู่ IP ของเครื่องท้องถิ่น
[ตัวอย่าง] แอปพลิเคชันที่อธิบายการใช้งานคลาส Inetaddress โปรแกรมสาธิตวิธีการรับชื่อโดเมนและที่อยู่ IP ของ www.weixueyuan.net
นำเข้า java.net.*;Class Example10_1{ Public static void main(String args[]){ ลอง{ //โค้ดต่อไปนี้สร้างอ็อบเจ็กต์ InetAddress ผ่านชื่อโดเมน: InetAddress addr = InetAddress.getByname("www.VeVB.COm "); String domainName = addr.getHostName();//รับชื่อโฮสต์ String IPName = addr.getHostAddress();//รับที่อยู่ IP System.out.println(domainName); System.out.println(IPName); }catch(UnknownHostException e){ e.printStackTrace();
ผลการวิ่งคือ:
www.VeVB.COm58.218.204.252