Basics of Java Network Programming: जावा की एक सबसे बडी विशेषता ये है कि हम इसमें Network Programming बहुत ही सरलता से कर सकते हैं। Network Programming के अन्तर्गत ऐसे Software बनाए जाते हैं, जो किसी Computer Network जैसे कि Internet या Intranet पर Run होते हैं और Distributed होते हैं। जावा में Network Programming को सरल बनाने के लिए बहुत सारी Classes को Create किया गया है और ये Classes हमें जावा की Class Library के रूप में JDK के साथ प्राप्त होती हैं। हालांकि जावा में Network Programming करना काफी सरल काम होता है, लेकिन फिर भी हमें Network Programming समझने से पहले Network से सम्बंधित कुछ Basic Concepts को ध्यान में रखना जरूरी है।
World Wide Web (WWW) Concepts
World Side Web एक एसा तरीका होता है, जिसमें दुनियां भर के लाखों Computers आपस में Connected होते हैं और आपस में विभिन्न प्रकार की Information को Share करते हैं, जो कि Web Pages या HTML Pages के रूप में Web पर स्थित होते हैं। Web Programming करने के लिए हमें URL (Uniform Resource Locator) के बारे में जानकारी होना जरूरी होता है। URL किसी Web Server पर उपलब्ध किसी Web Page या Web Site का एक Address होता है, जिससे उस Particular Web Page या Site को Identify व Access किया जाना सम्भव हो पाता है। Network पर उपलब्ध किसी Page या Site को Identify करने के लिए जावा में URL व URLConnection नाम की Classes को Develop किया गया है। इन Classes के Objects द्वारा हम Network पर स्थित किसी Page या Site को Identify करके अपने Program में Access कर सकते हैं।
Distributed Programs
Network Program ऐसे Program होते हैं, जिसमें दो अलग-अलग Computer Systems आपस में एक दूसरे से Connect होते हैं और आपस में Information को Share करते हैं। Network Programs में हमेंशा कम से कम दो Computers होते हैं और दोनों Computers पर एक विशेष प्रकार का Software Installed होता है, जिससे दोनों Computers आपस में Connect होकर Communication करते हैं। ऐसे Software जो कि एक से ज्यादा Computer पर समान समय में आपस में Connect होकर Run होते हैं, और किसी विशेष Problem को Solve करते हैं, Distributed Software कहलाते हैं और जितने भी Computers आपस में Distributed Software का प्रयोग करके किसी समस्या को Solve करने के लिए Involve होते हैं, वे सभी Computers Network के हिस्से होते हैं और विभिन्न Computers का ये Group ही Network कहलाता है।
Distributed Software आपस में Client/Server तकनीक पर आधारित होते हैं। Client/Server तकनीक एक ऐसी तकनीक है, जिसमें किसी एक समस्या को Solve करने के लिए जो Software बनाया जाता है, उसे कई Computers मिलकर Use करते हैं। इस तकनीक में एक मुख्य Computer होता है, जिस पर Software से सम्बंधित सभी Data को Store किया जाता है। इस मुख्य Computer को Server कहा जाता है। Network से जुडे हुए जितने भी अन्य Computers होते हैं, वे सभी Computers विभिन्न प्रकार के Data को इसी Server Computer पर Store करते हैं। इन Computers को Clients या Node कहा जाता है।
Client Computer हमेंशा Server Computer से ही Data को प्राप्त करता है और विभिन्न प्रकार के Data को Server Computer पर ही Store करता है। एक Distributed Software में Client व Server के बीच आपस में विभिन्न प्रकार के Data का लेन-देन होता रहता है। Client व Server आपस में तभी किसी प्रकार का Data Communication कर सकते हैं, जब दोनों आपस में किसी तरीके से Connected हों। Client व Server के बीच इस Connection को Establish करने के लिए विभिन्न प्रकार की Low-Level Classes की जरूरत होती है। जावा में इन Classes को java.io नाम के Package में Group किया गया है, जिनका प्रयोग करके Client व Server को आपस में Connect किया जा सकता है।
Protocol
Distributed Software को आपस में Communicate करवाने के लिए कुछ छोटे-छोटे Standard Software बनाए गए हैं। ये Software दो Computers को आपस में Connect करने का काम करते हैं। इन Software को Protocol कहा जाता है। विभिन्न प्रकार के कामों को Network पर Perform करने के लिए विभिन्न प्रकार के Protocols Develop किए गए हैं।
उदाहरण के लिए यदि Internet से किसी File को एक Computer से दूसरे Computer पर Transfer करना हो, तो ये काम FTP (File Transfer Protocol) करता है, यदि E-Main Send करना हो तो SMTP (Simple Mail Transfer Protocol) व E-Mail को प्राप्त करना हो, तो POP (Post Office Protocol) Use किया जाता है। इसी तरह से यदि हमें Internet से किसी Web Document को Access करना हो, इस काम को HTTP (Hyper Text Transfer Protocol) पूरा करता है।
इसी तरह से विभिन्न प्रकार के अन्य Internet या Network Related कामों को पूरा करने के लिए विभिन्न प्रकार के Protocols को Develop किया गया है। इन Protocols के समूह को एक विशेष नाम से Identify किया जाता है, जिसे TCP/IP यानी Internet Control Protocol / Internet Protocol कहा जाता है और जो Computer Networks TCP/IP Group के Protocols को Use करके आपस में Network स्थापित करते हैं, उन Networks को TCP/IP Network कहा जाता है।
जिस तरह से विभिन्न प्रकार के Technical Field में कुछ विशिष्ट प्रकार के काम होते हैं, जिन्हें Refer करने के लिए विभिन्न प्रकार के शब्द होते हैं, उसी तरह से Computer Networking Field से Related कुछ विशिष्ट प्रकार के शब्द होते हैं, जिनका Computer Networking Field में अपना विशेष अर्थ होता है। इनमें से कुछ शब्दों का Description निम्नानुसार हैः
-
IP Address
जब भी कोई Computer Internet से Connect होता है, Internet द्वारा एक विशेष तरीके का प्रयोग करके Connect होने वाले हर Computer को एक Unique Number प्रदान कर दिया जाता है। Internet द्वारा हर Computer को दिए जाने वाले इस Unique Number को उस Computer का IP Address कहा जाता है।
ये एक 32-Bit Number होता है, जिसमें चार 8-Bit Numbers होते हैं और चारों Numbers 0 से 255 की Range के बीच हो सकते हैं। इन चारों Numbers को एक Dot का प्रयोग करके एक दूसरे से अलग किया जाता है। उदाहरण के लिए 170.17.8.192 किसी समय किसी Computer का एक IP Address हो सकता है। इस IP Number के दो हिस्से होते हैं: पहला हिस्सा उस Network को Identify करता है जिस में Host Exist है और दूसरा हिस्सा किसी Particular Host को Identify करता है।
जब भी हम Internet से जुडते हैं, हमारे Computer को एक Unique IP Number Internet द्वारा Provide किया जाता है और ये Number तभी तक हमारे Computer को Refer करता है, जब तक हम Net से Connected रहते हैं। जैसे ही हम Net से Disconnect होते हैं, हमें Allot किया गया IP Number किसी अन्य Computer को Provide किया जा सकता है। यदि हम फिर से Net से Connect होते हैं, तो फिर से हमें वही IP Number प्राप्त नहीं होगा, बल्कि Internet द्वारा हमें एक नया Number दे दिया जाएगा। इस स्थिति में हमारा Computer तो एक ही होता है, लेकिन अलग-अलग समय पर Net से Connect होने के कारण कई IP Numbers द्वारा Identify हो सकता है।
-
Host
Network पर स्थित कोई एक विशिष्ट प्रकार का Computer Host कहलाता है। चूंकि Host सामान्यतया Server का काम करता है, इसलिए Host हमेंशा बाकी के अन्य Computers की तुलना में अधिक Powerful होता है। TCP/IP Network के हर Host का एक Unique IP Address होता है, जिससे उस Host की Network पर एक Unique पहचान होती है।
-
Hostname
किसी भी TCP/IP Network के किसी Powerful Computer को Host बनाया जाता है, जो उसके Clients को Service Provide करता है। हर Host का एक Unique IP Address होता है, जिससे उस Host को अन्य Clients Identify करते हैं। लेकिन जब हम Internet से जुडते हैं, तब लाखों TCP/IP Networks आपस में Connected होते हैं, इसलिए विभिन्न प्रकार के Hosts को Identify करने के लिए IP Address को याद रखना जरूरी होता है, ताकि एक Client Required Host से किसी Service के लिए Request कर सके।
चूंकि IP Address वास्तव में एक 32-Bit Number होता है और विभिन्न Hosts के IP Numbers को याद रखना एक कठिन काम है, इसलिए विभिन्न Hosts को Internet की एक विशेष Service द्वारा एक Logical Symbolic नाम दे दिया जाता है और हमें किसी Host को उसके IP Number के स्थान पर उसके नाम से याद रखना होता है, जो कि तुलना में सरल होता है। किसी Host के IP Address के साथ एक नाम Associate करने का काम DNS (Domain Name Service) व Sun Microsystems Company का NIS (Network Information Services) करता है।
जब हम Net से किसी Web Site के किसी Web Page को प्राप्त करना चाहते हैं, तब हमें उस Web Site का Web Address लिखना होता है। इसी Web Address में हमारे उस Host का नाम होता है, जिससे हम Connect होना चाहते हैं। Internet की जिस DNS व NIS Service का प्रयोग करके किसी Host को एक नाम Provide किया जाता है, वही Service हमारे Web Address में से Host के नाम को भी प्राप्त करने के बाद Host के नाम के आधार पर उस नाम से सम्बंधित IP Address या IP Number को प्राप्त करता है और हमें उस Host पर पहुंचा देता है, जिस पर हमारी Required Site उपलब्ध होती है।
-
IETF (Internet Engineering Task Force)
ये Engineers का एक एसा Group है जो Internet से सम्बंधित Standards को Maintain करने व नए Standards बनाने का काम करता है।
-
Internet
इसे सामान्यतया Networks का Network कहा जाता है। Internet वास्तव में बहुत सारे छोटे Networks का एक समूह होता है, जो Globally Interconnected होते हैं।
-
Intranet
ये एक छोटा Network होता है, जो TCP/IP Protocols को Use करता है और Internet से Connected नहीं होता है। यदि ये Internet से Connect होता है तो एक Firewall के Through Connect होता है।
-
Packet
जब दो Computers आपस में Connect हो कर एक दूसरे को Information Transfer करते हैं, तो ये Information छोटे-छोटे टुकडों में विभाजित हो कर एक Computer से दूसरे Computer पर पहुंचता है। Information के इन छोटे-छोटे टुकडों को Packets कहा जाता है। कई बार Packets को Datagram भी कहा जाता है। लेकिन तकनीकी स्तर पर दोनों में एक मुख्य अन्तर ये है कि Packet शब्द को Network Layer के लिए Use किया जाता है, जबकि Datagram शब्द को Higher-Layer Message के लिए Use किया जाता है।
-
Protocol
Protocols Information को Transmit करने के लिए Use किए जाने वाले Data Formats व Messages का एक समूह होता है, जिसे हम एक छोटे Software की तरह मान सकते हैं। अलग-अलग प्रकार के Networks तभी एक दूसरे से Communication कर सकते हैं, जब दोनों Networks समान Protocol को Use करते हैं। Protocols वास्तव में कुछ ऐसे Standard नियमों का समूह होता है, जो दो अलग प्रकार के Networks के बीच Communication Establish करने का काम करते हैं।
-
Protocol Stack
Networking Services को हम विभिन्न Layers के एक ऐसे समूह के रूप में मान सकते हैं, जहां Lower Layer Services को Use करके Higher Layer Services को Service Provide करने का काम किया जाता है। Layers का ये समूह, जो कि Network Functionality Provide करते हैं, Protocol Stack कहा जाता है।
-
Router
Router एक विशेष प्रकार का Network Hardware होता है। ये एक ऐसा Host होता है जो जानता है कि विभिन्न प्रकार के Networks के बीच Packets को किस प्रकार से Forward किया जा सकता है।
-
Sockets
जब दो Computers आपस में Communication करते हैं, तब Source Computer के लिए Destination Computer एक Socket की तरह Represent किया जाता है। जब हम TCP/IP के संदर्भ में बात करते हैं, तब Socket को एक ऐसे Unique Pair के रूप में देखा जाता है, जिसमें Source Computer का IP Address व Port Number तथा Destination Computer का IP Address व Port Number होता है।
(Basics of Java Network Programming)
ये Article इस वेबसाईट पर Selling हेतु उपलब्ध EBook Java in Hindi से लिया गया है। इसलिए यदि ये Article आपके लिए उपयोगी रहा, तो निश्चित रूप से ये पुस्तक भी आपके लिए काफी उपयोगी साबित होगी।
Java Programming Language in Hindi | Page: 682 | Format: PDF