来看Merlin的魔力: Java联网加强手艺
你总不能说你写框架吧,那无疑会加大工作量,现在大多企业采取的是折中的办法,就是改别人写好的框架,可要改框架,前提是你对这个框架足够的了解,这就更难了。Java编程中的联网包含了定位和辨认资本的才能和经由过程TCP和UDP毗连举行通讯的才能。起首,您必要辨认具有象www.ckuyun.com如许称号的资本,然后翻开到该资本的毗连,最初在您本人和毗连的另外一端之间发送信息包。因为平安性缘故原由,大概会包含别的义务,可是全部历程是一样的。关于Java平台,会在java.net包中找到撑持这些操纵的类。从Java编程的初期到如今,这些操纵中年夜多半都不曾产生太年夜的变更。可是,跟着Merlin的开展,这些基础操纵中有些已作了改善,以撑持有代价的新功效。在本文中,我们将研讨五个此类功效:IPv6撑持、URI、收集接口、非绑定套接字和平安套接字。
对IPv6地点的撑持
起首让我们研讨一下对下一代因特网协定V6(InternetProtocolV6,IPv6)寻址系统布局的新撑持。借助于InetAddress的两个新子类(Inet4Address和Inet6Address),您可以与基于TCP和UDP的使用程序举行毗连。Inet4Address撑持年夜多半呆板所撑持的较旧的(并且一般是独一的)IP寻址款式,localhost的格局为127.0.0.1。RFC2373(请参阅参考材料)中所界说的新寻址计划供应了一种用冒号离隔的格局,个中0:0:0:0:0:0:0:1是与127.0.0.1等价的回送地点。新的类同意使用程序撑持一种或这两种寻址计划。
对IPv6的撑持取决于底层平台是不是撑持它,Solaris8和更高版本,和Linux2.1.2和更高(RedHat6.1+)版本都撑持IPv6,而MicrosoftWindows其实不撑持它(Microsoft的Window2000完成是个无限的完成)。但愿J2SE1.4的Windows版本今后能撑持IPv6。
熟悉一致资本标识符
java.net包现已包含了一致资本标识符(uniformresourceidentifier,URI)类。可将URI看做是幕后没有协定处置程序的一致资本定位符(uniformresourcelocator,URL)。一般,URL看上往象http://www.ckuyun.com。为了使Java言语运转时了解URL,它必要晓得该怎样处置以http:开首的信息。之前,假如您提出新协定(比方,象jdbc:database),那末若没有协定处置程序,则您不克不及将jdbc:database字符串作为URL处置。相反,您不能不严厉地将它作为字符串处置,这恰是JDBC如今所做的。
URI的典范格局是:[//authority][?query][#fragment],个中authority一般就是主机名。可是,它还能够包含用户登录信息和端口:host[:port]。URI类本身供应了一系列的getter办法,以便懂得URI各个特定的部分。在您先前传送看上往象URL的字符串(但这仅为了形貌URL而非利用它)的中央,您应该利用该类。
用NetworkInterface列出收集毗连
您是不是已经想晓得哪一个联网接口是可用的,可是在不复兴到本机代码的情形下又不晓得该怎样扣问呢?一般,毗连至因特网的年夜多半呆板中有两个毗连:到其本身的当地轮回和到其当地服务供给商的毗连。可是,有些呆板是多宿主的。它们有多个网卡,每一个网卡都有一个到因特网的自力毗连而且都有本人的称号和地点。有了这个新的NetworkInterface接口,您就能够在向外发送多点播送数据报时指定利用哪一个网卡,或检察收集毗连是不是一般。清单1演示了该类的用法:
清单1.列出收集接口
importjava.net.*;
importjava.util.Enumeration;
publicclassNets{
publicstaticvoidmain(Stringargs[])throwsSocketException{
Enumerationenum=NetworkInterface.getNetworkInterfaces();
while(enum.hasMoreElements()){
NetworkInterfacenet=(NetworkInterface)enum.nextElement();
System.out.println(
"Names:"+net.getName()+"/"+net.getDisplayName());
Enumerationenum2=net.getInetAddresses();
while(enum2.hasMoreElements()){
InetAddressaddress=(InetAddress)enum2.nextElement();
System.out.println(" Address:"+address.getHostAddress());
}
}
}
}
您运转该程序所得的了局一定是分歧的。清单2包含了您想看到的输入样本:
清单2.清单1的样本了局
Names:lo/MSTCPLoopbackinterface
Address:127.0.0.1
Names:eth0/3ComEtherLinkPCI
Address:192.168.0.109
<p>
但是我同意你的观点,对于大型项目来说,应该是采用框架的一部分,根据功能的不同而改进,欢迎你能再提出些宝贵意见,我会多多学习的。说到jbuilder,我可能是个人感觉,用的时候确实没有vs爽,我最喜欢的IDE是net网页编程beans,谢谢。 你一定会高兴地说,哈哈,原来成为Java高手就这么简单啊!记得Tomjava也曾碰到过一个项目经理,号称Java很简单,只要三个月就可以学会。 是一种突破用户端机器环境和CPU 那么我书也看了,程序也做了,别人问我的问题我都能解决了,是不是就成为高手了呢?当然没那么简单,这只是万里长征走完了第一步。不信?那你出去接一个项目,你知道怎么下手吗,你知道怎么设计吗,你知道怎么组织人员进行开发吗?你现在脑子里除了一些散乱的代码之外,可能再没有别的东西了吧! Java是一个纯的面向对象的程序设计语言,它继承了 C++语言面向对象技术的核心。Java舍弃了C ++语言中容易引起错误的指针(以引用取代)、运算符重载(operator overloading) 一般学编程语言都是从C语开始学的,我也不例外,但还是可能不学过程语言而直接学面向对象语言的,你是刚接触语言,还是从C开始学比较好,基础会很深点,如果你直接学习JAVA也能上手,一般大家在学语言的时候都记一些语言的关键词,常有的包和接口等。再去做逻辑代码的编写,以后的学习过程都是从逻辑代码编写中提升的,所以这方面都是经验积累的。你要开始学习就从 是一种使用者不需花费很多时间学习的语言 Java是一种计算机编程语言,拥有跨平台、面向对java 其实说这种话的人就如当年小日本号称“三个月拿下中国”一样大言不惭。不是Tomjava泼你冷水,你现在只是学到了Java的骨架,却还没有学到Java的精髓。接下来你得研究设计模式了。 是一种由美国SUN计算机公司(Sun Microsystems, Inc.)所研究而成的语言 是一种由美国SUN计算机公司(Sun Microsystems, Inc.)所研究而成的语言 有时间再研究一下MVC结构(把Model-View-Control分离开的设计思想) 一直感觉JAVA很大,很杂,找不到学习方向,前两天在网上找到了这篇文章,感觉不错,给没有方向的我指了一个方向,先不管对不对,做下来再说。 还好,SUN提供了Javabean可以把你的JSP中的 Java代码封装起来,便于调用也便于重用。
页:
[1]