詳解一個Java的Socket功能小應(yīng)用
Sun公司Java語言的的推出可以說是一個劃時代的語言革命,這種語言同時能適應(yīng)應(yīng)用軟件領(lǐng)域和網(wǎng)絡(luò)開發(fā)領(lǐng)域,其優(yōu)秀的網(wǎng)絡(luò)開發(fā)功能更是讓人驚嘆,利用Java你可以輕松的實現(xiàn)在其他的語言中要花很多代碼和時間才能實現(xiàn)的功能:你可以很輕松的用Java Socket開發(fā)一個同Windows的那個notebook一樣的程序,甚至你可以朝開發(fā)word進軍,你可以很輕松的實現(xiàn)網(wǎng)絡(luò)通信,你可以在網(wǎng)絡(luò)中展現(xiàn)漂亮的圖像效果(這種效果你是使用gif.jpg以及flash始終做不到的),你可以使用Java開發(fā)Webserver和中間件(參考www.apusic.com)實現(xiàn)負載均衡等功能;你也可以在開發(fā)你的郵件系統(tǒng);可以生成功能非常強大的Java Socket組件運行于ASP中,比VB、VC和Borland C++ builder開發(fā)相應(yīng)的組件來的容易,而且功能也強大的多。Java的種種精彩不是筆者可以在這里完全可以介紹完的,但是下面筆者給出的一段不超過20行的代碼可以讓你感覺到Java這種語言的真正強大.。你如果能靈活的運用Java Socket,我相信,你一定可以做得比我更精彩!ok!lets begain!
本文利用Java Socket通信功能實現(xiàn)了下面兩種作用:
1、可以查詢internet中domain和ip的(具體的用法見后文);
2、可以在局域網(wǎng)中通過機器名查詢相應(yīng)的ip和通過ip查詢相應(yīng)的機器名;
原理:下面的代碼使用socket利用了系統(tǒng)查詢了相應(yīng)的internet上的dns解析和局域網(wǎng)中dns解析來獲得相應(yīng)的數(shù)據(jù)資料;
- //代碼開始
- /*
- 本代碼只是提供測試,不提供完全的實際應(yīng)用的功能,但是你可以利用下面的思路開發(fā)你自己的相應(yīng)的程序,請注意本文提供的socket通信在internet上查詢domain(或者ip)的功能不完全正確,因為本文使用的socket訪問方式不是訪問的相應(yīng)的domain數(shù)據(jù)庫,所以不能實現(xiàn)精確的domain(或者ip)的查詢,但是一切在internet上能被訪問到的domain(或者ip)都可以都可以被查詢到相應(yīng)的ip(或者domain),如果需要你也可以使用本文所提及socket訪問相應(yīng)的domain數(shù)據(jù)庫得到完全正確的domain查詢功能!在run下面的程序以前,請確定你已經(jīng)安裝了jdk1.3以及配置了相關(guān)的參數(shù)。
- */
- import Java.net.*;
- class search
- {
- public static void main(String[] args)
- {
- try
- {
- InetAddress address=InetAddress.getByName(args[0]);
- //獲得你要查詢的ip或者domain
- System.out.println(address);
- //輸出查詢結(jié)果
- }
- catch (Exception e)
- {
- //錯誤提示
- System.out.println("對不起,你查詢的站點或者IP未被程序找到,可能原因如下");
- System.out.println("1,該站點尚未注冊或者該站點尚未啟用");
- System.out.println("2.你沒有連接到網(wǎng)絡(luò)");
- System.out.println("3.該ip地址可能已被DHCP解析,但是尚未指向相應(yīng)的站點");
- }
- }
- }
- //代碼結(jié)束
把上面的代碼save為search.Java
好了進入dos模式使用"Javac search.Java"編譯search.Java為search.class,然后,我們就可以開始使用我們的代碼來測試了!
1。如果你要查詢internet中domain,我們以www.sina.com為例你可以輸入:"Java search www.sina.com" 你可以得到下面的結(jié)果:"www.sina.com/206.204.114.57",返回給你的數(shù)據(jù)中就包含了
2.在局域網(wǎng)中通過機器名反查ip:這點我相信是很有用的,嘿嘿,具體的使用方法和前面的差不多,但是你發(fā)現(xiàn)有了這個東西你可以很輕松的搞到任何人的相對應(yīng)的機器名和ip地址,不要亂用喲!當(dāng)然你也可以通過ip反查機器名;但是同樣有點不是問題的問題:如果該機器不存在的話是不會報錯的,而是以一種前后都是ip的形式返回結(jié)果,好了,其他的我也不多說了,你就慢慢的用吧! 上面給出的代碼可能對于不習(xí)慣Java的朋友來說不是很好操作,但是你可以把它改成applet在瀏覽器中運行! 本文介紹的Java功能只是Java網(wǎng)絡(luò)功能部分中很小的一個部分,Java強大的功能從本文提供的代碼只可以體現(xiàn)很小很小的一個部分,如果你的E文夠好,建議你多訪問一下Java.sun.com多學(xué)習(xí)一下Java.! 備注:本人環(huán)境Win2000 professional+jdk1.3 【編輯推薦】