Java socket功能的一个小应用

2016-01-29 12:49 13 1 收藏

Java socket功能的一个小应用,Java socket功能的一个小应用

【 tulaoshi.com - Java 】

'########################################################
'大风(XuanKong)
'下面所显示的代码生成的jar文件你可以在www.xuankong.com获得!
'#######################################################

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/java/)

Sun公司java语言的的推出可以说是一个划时代的语言革命,这种语言同时能适应应用软件领域和网络开发领域,其优秀的网络开发功能更是让人惊叹,利用java你可以轻松的实现在其他的语言中要花很多代码和时间才能实现的功能:你可以很轻松的用java开发一个同Windows的那个notebook一样的程序,甚至你可以朝开发word进军,你可以很轻松的实现网络通信,你可以在网络中展现漂亮的图像效果(这种效果你是使用gif.jpg以及flash始终做不到的),你可以使用java开发Webserver和中间件(参考www.apusic.com)实现负载均衡等功能;你也可以在开发你的邮件系统;可以生成功能非常强大的java组件运行于asp中,比vb、vc和Borland C++ builder开发相应的组件来的容易,而且功能也强大的多。java的种种精彩不是笔者可以在这里完全可以介绍完的,但是下面笔者给出的一段不超过20行的代码可以让你感觉到java这种语言的真正强大.。你如果能灵活的运用java,我相信,你一定可以做得比我更精彩!ok!let's begain!
本文利用Java的socket通信功能实现了下面两种作用:
1、可以查询internet中domain和ip的(具体的用法见后文);
2、可以在局域网中通过机器名查询相应的ip和通过ip查询相应的机器名;
原理:下面的代码使用socket利用了系统查询了相应的internet上的dns解析和局域网中dns解析来获得相应的数据资料;
//代码开始
/*
本代码只是提供测试,不提供完全的实际应用的功能,但是你可以利用下面的思路开发你自己的相应的程序,请注意本文提供的socket通信在internet上查询domain(或者ip)的功能不完全正确,因为本文使用的socket访问方式不是访问的相应的domain数据库,所以不能实现精确的domain(或者ip)的查询,但是一切在internet上能被访问到的domain(或者ip)都可以都可以被查询到相应的ip(或者domain),如果需要你也可以使用本文所提及socket访问相应的domain数据库得到完全正确的domain查询功能!在run下面的程序以前,请确定你已经安装了jdk1.3以及配置了相关的参数。
*/
import java.net.*;
class search
{
public static void main(String[] args)
{
try
{
InetAddress address=InetAddress.getByName(args[0]);
//获得你要查询的ip或者domain
System.out.println(address);
//输出查询结果
}
catch (Exception e)
{
//错误提示
System.out.println("对不起,你查询的站点或者IP未被程序找到,可能原因如下");
System.out.println("1,该站点尚未注册或者该站点尚未启用");
System.out.println("2.你没有连接到网络");
System.out.println("3.该ip地址可能已被DHCP解析,但是尚未指向相应的站点");
}
}
}
//代码结束
把上面的代码save为search.java
好了进入dos模式使用"javac search.java"编译search.java为search.class,然后,我们就可以开始使用我们的代码来测试了!
1。如果你要查询internet中domain,我们以www.sina.com为例你可以输入:"java search www.sina.com" 你可以得到下面的结果:"www.sina.com/206.204.114.57",返回给你的数据中就包含了www.sina.com的ip地址;如果你再输入:"java search 206.204.114.57"你返回的结果为"www.sina.com/206.204.114.57",同样返回的结果包含了sina的domain,但是需要注意的如果你的ip解析了多个domain的话可能不能准确的通过ip反查domain,而且有的站点为了访问的方便使用了不同的ip,即一个站点有几个ip,这样你返回的只是第一个ip地址,其他还有一些问题就留待你自己去发现了,前面说过本文只是给你提供一种思路;
2.在局域网中通过机器名反查ip:这点我相信是很有用的,嘿嘿,具体的使用方法和前面的差不多,但是你发现有了这个东西你可以很轻松的搞到任何人的相对应的机器名和ip地址,不要乱用哟!当然你也可以通过ip反查机器名;但是同样有点不是问题的问题:如果该机器不存在的话是不会报错的,而是以一种前后都是ip的形式返回结果,好了,其他的我也不多说了,你就慢慢的用吧!
上面给出的代码可能对于不习惯java的朋友来说不是很好操作,但是你可以把它改成applet在浏览器中运行!
本文介绍的java功能只是java网络功能部分中很小的一个部分,java强大的功能从本文提供的代码只可以体现很小很小的一个部分,如果你的E文够好,建议你多访问一下java.sun.com多学习一下java.!
备注:本人环境Win2000 professional+jdk1.3

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/java/)

来源:http://www.tulaoshi.com/n/20160129/1487712.html

延伸阅读
事实上网络编程简单的理解就是两台计算机相互通讯数据而已.对于程序员而言,去掌握一种编程接口并使用一种编程模型相对就会显得简单的多了.Java SDK提供一些相对简单的Api来完成这些工作.Socket就是其中之一.对于Java而言.这些Api存在与java.net 这个包里面.因此只要导入这个包就可以准备网络编程了. 网络编程的基本模型就是客户机到服务器模型...
摘要 通过本章的学习,读者应了解Java语言的两种程序:应用程序、小应用程序的基本结构,能够编译、运行Java应用程序和小应用程序。 -------------------------------------------------------------------------------- 本章目标: 通过本章的学习,读者应了解Java语言的两种程序:应用程...
模仿实现一下ios系统应用时钟里的秒表程序,就是这个应用: 主要实现的功能: 1.由start/stop键实现计时 2.有reset/lap键实现复位和计次 需要思考的点: 1.时间的表示方法(有很多种思路) 2.计次数据的倒序排列,即计次1的数据在最底端,依次向上为计次2,计次3的时间数据 我的实现: ARC省去了我们自行管理内存的大部分事情,写惯了c+...
事实上网络编程简单的理解就是两台计算机相互通讯数据而已.对于程序员而言,去掌握一种编程接口并使用一种编程模型相对就会显得简单的多了.Java SDK提供一些相对简单的Api来完成这些工作.Socket就是其中之一.对于Java而言.这些Api存在与java.net 这个包里面.因此只要导入这个包就可以准备网络编程了. 网络编程的基本模型就是客户机到服务器模型....
第一,谈谈final, finally, finalize的区别。 final?修饰符(关键字)如果一个类被声明为final,意味着它不能再派生出新的子类,不能作为父类被继承。因此一个类不能既被声明为 abstract的,又被声明为final的。将变量或方法声明为final,可以保证它们在使用中不被改变。被声明为final的变量必须在声明时给定初值,而在以后的引用中...

经验教程

566

收藏

5
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部