|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
你总不能说你写框架吧,那无疑会加大工作量,现在大多企业采取的是折中的办法,就是改别人写好的框架,可要改框架,前提是你对这个框架足够的了解,这就更难了。
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的典范格局是:[scheme:][//authority][path][?query][#fragment],个中authority一般就是主机名。可是,它还能够包含用户登录信息和端口:[userInfo@]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,谢谢。 |
|