Identifying a Computer
एक Computer से किसी दूसरे Computer को कोई Information Send करने के लिए और ये निश्चित करने के लिए कि हम उसी Computer से Connected हैं, जिससे Communication करना चाहते हैं, एक ऐसे तरीके की जरूरत होती है, जिससे Network से Connected सभी Computers को Uniquely Identify किया जा सके। इसके लिए IP Address (102.126.3.22) व Domain Name (www.bccfalna.com) इन दो तरीकों को Develop किया गया है।
दोनों ही तरीकों में IP Address को Internally एक 32-Bit Number द्वारा Represent किया जाता है और हम इस IP Address की इन दोनों Forms को जावा द्वारा निम्नानुसार प्रदान किए गए एक Special Java Object के रूप में Represent कर सकते हैं, जो कि java.net नाम के Package में उपलब्ध है:
Static InetAddress.getByName()
जब हम इस Method को Use करके इसमें किसी Computer का IP Address या Domain Name Argument के रूप में देते हैं, तो ये Method InetAddress Type का एक Object Return करता है।
हम जब भी Internet से Connect होते हैं, तो हमारा Internet Service Provider (ISP) हमारे Computer को एक Unique लेकिन Temporary IP Address Assign कर देता है। जब तक हम Internet से Connected रहते हैं, तब तक हमारे Computer का IP Address भी उतना ही Valid रहता है, जितना Internet से जुडे अन्य Computers का IP Address Valid होता है। यदि कोई अन्य Computer हमारे Computer के इस IP Address को Use करके हमारे Computer से Connect होता है, तो वह हमारे Computer पर Run हो रहे किसी Web Server या FTP Server से Connect हो सकता है।
लेकिन जैसे ही हम हमारे Computer को Net से Disconnect करते हैं, हमारे Computer को ISP द्वारा दिया गया IP Address Lost हो जाता है। यदि हम फिर से Net से Connect हों, तो भी ये जरूरी नहीं होता है, कि हमारा ISP हमें फिर से वही IP Address Provide करेगा।
यानी हम जितनी बार भी Internet से Connect होते हैं, हमें हमारा ISP एक नया IP Address Provide करता है। इस स्थिति में हमारी सबसे बडी समस्या यही होती है कि कोई भी दूसरा Computer किसी सामान्य तरीके से हमें Uniquely Identify करके हर बार हमसे Connect नहीं हो सकता।
जब हम Net से Connect होते हैं, उस समय हमारे ISP ने हमारे Computer को कौनसा IP Address Provide किया है, इस बात की जानकारी प्राप्त करने के लिए हम InetAddress.getByName() Method को Use कर सकते हैं। अगले Program में हमने इस Method को Use किया है, जो हमें उस Computer का IP Address Produce करके Return करता है, जिसका नाम हम इस Program में Argument के रूप में Command Prompt पर देते हैं।
import java.net.*; public class WhoAmI { public static void main(String[] args) throws Exception { if(args.length != 1) { System.err.println("Usage: WhoAmI ComputerName"); System.exit(1); } InetAddress IPAddress = InetAddress.getByName(args[0]); System.out.println(IPAddress); } }
हर Computer का स्वयं का भी एक IP Address होता है, जिसका Domain Name “localhost” व IP Address “127.0.0.1” होता है। इसी तरह से हर Computer का एक नाम भी होता है, जिसका पता लगाने के लिए हमें निम्न Process को Use करना होता है:
- My Computer Icon पर Right Click करें।
- Display होने वाले Menu से Properties Option को Select करें।
- Display होने वाले Dialog Box में Computer Name Tab के अन्तर्गत Computer का नाम दिखाई देता है।
या
Select => Start Button => Programs => Accessories => System Tools => System Information => Click
Click करने पर हमें निम्नानुसार System Information Window दिखाई देता है, जिसमें System Name Option के सामने हमारे Computer का नाम लिखा होता है। सामान्यतया हम हमारे Local Computer को Refer करने के लिए “localhost” शब्द का भी प्रयोग कर सकते हैं।

चूंकि, हमारे Computer का नाम “ServerNClient” है, इसलिए इस Computer को Net से Connect करने के लिए यदि हम निम्नानुसार Command Use करते हैं:
c:\jdk1.5\bin\java WhoAmI ServerNClient
तो हमें निम्नानुसार Output प्राप्त होता है:
ServerNClient/199.190.90.33
अब यदि हमारे Computer पर कोई Web Server Run हो रहा हो और कोई हमारे Computer से Connect होना चाहे, तो वह अपने Browser में “http://199.190.90.33” URL को Use करके तब तक के लिए Connect हो सकता है, जब तक हम Internet से Connected रहेंगे। इस तरीके का प्रयोग करके हम हमारी किसी Web Site को Real Server पर Post करने से पहले Test करने के लिए कर सकते हैं।
Network Programs या Distributed Programs इसी तथ्य पर आधारित होते हैं कि दो Computers को आपस में कैसे Connect किया जाए, ताकि वे एक दूसरे की Information Share कर सकें। इस Program में हमेंशा दो हिस्से होते हैं।
पहले हिस्से को Server कहा जाता है, जो किसी Client के Connection को Accept करने के लिए उसे किसी Port पर Listen करता रहता है। Server से Connection स्थापित करने का काम Client का होता है और ये काम एक Special Client Object द्वारा होता है, जिसे हम Client Program में Create करते हैं।
जब एक बार कोई Client किसी Server से Connect हो जाता है, उसके बाद Client व Server दोनों Ends एक I/O Stream Objects के रूप में Behave करने लगते हैं। ऐसा हो जाने के बाद हम Client व Server दोनों के Connections को इस प्रकार से Use कर सकते हैं, जैसे हम किसी File को Data Read/Write करने के लिए Use करते हैं।
Testing Java Network Program without Network
कई कारणों से कई बार हमारे पास दो Computers नहीं होते हैं, जिन्हें आपस में Client व Server के रूप में Use करके एक Distributed Program को Develop किया जा सके। उदाहरण के लिए किसी Class Room में Develop किया जा रहा कोई Program ऐसा नहीं होता है, जिसे Network पर स्थापित किया जा सके।
इस स्थिति में एक ही Computer पर Client व Serer दोनों Programs को Use करना होता है। Internet Protocols Develop करने वाले इस बात से परिचित थे] इसलिए उन्होंने एक Special Address localhost Create किया था, जो कि हमारे Local Computer के ही IP Address को Use करता है।
इसका फायदा ये है कि हम बिना किसी Network के भी एक ऐसा Software Develop कर सकते हैं, जो Network पर Run हो सकता है। Local Address को Produce करने का एक तरीका निम्नानुसार होता है:
InetAddress localIPAddress = InetAddress.getByName(null);
यानी यदि हम getByName() Method में Argument के रूप में null Specify करते हैं, तो ये Method Default के रूप में localhost का Address Return करता है। InetAddress वह Address होता है, जिसका प्रयोग करके हम किसी Particular Computer को Identify करते हैं।
हम InetAddress के Contents को Manipulate नहीं कर सकते हैं, लेकिन हम इसे Display जरूर कर सकते हैं। हम इस InetAddress को Overloaded Static Member Method getByName(), getAllByName() या getLocalHost() का प्रयोग करके प्राप्त कर सकते हैं। हम String के रूप में localhost शब्द का प्रयोग करके भी Local Computer के InetAddress को Produce कर सकते हैं। जैसे:
InetAddress localIPAddress = InetAddress.getByName(“localhost”);
हम हमारे Computer के InetAddress को निम्न Reserved IP Number द्वारा भी प्राप्त कर सकते हैं:
InetAddress localIPAddress = InetAddress.getByName(“127.0.0.1”);
ये तीनों ही तरीके समान Results Generate करते हैं और इन तीनों ही तरीकों से हम हमारे Local Computer को Refer कर सकते हैं।
ये Article इस वेबसाईट पर Selling हेतु उपलब्ध EBook Java in Hindi से लिया गया है। इसलिए यदि ये Article आपके लिए उपयोगी रहा, तो निश्चित रूप से ये पुस्तक भी आपके लिए काफी उपयोगी साबित होगी।
Java Programming Language in Hindi | Page: 682 | Format: PDF