资源描述:
《java网络编程学习手记new》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、Writingasinglebyteatatimeisofteninefficient.Forexample,everyTCPsegmentthatgoesoutyourEthernetcardcontainsatleast40bytesofoverheadforroutinganderrorcorrection.Ifeachbyteissentbyitself,youmaybestuffing(充满,塞满)thenetworkwith41timesmoredatathanyouthinkyouare!Consequently,mo
2、stTCP/IPimplementationsbufferdatatosomeextent.Thatis,theyaccumulatebytesinmemoryandsendthemtotheireventualdestinationonlywhenacertainnumberhaveaccumulatedoracertainamountoftimehaspassed.However,ifyouhavemorethanonebytereadytogo,it'snotabadideatosendthemallatonce.Usingw
3、rite(byte[]data)orwrite(byte[]data,intoffset,intlength)isnormallymuchfasterthanwritingallthecomponentsofthedataarrayoneatatime.Forinstance,here'sanimplementationofthegenerateCharacters()methodthatsendsalineatatimebypackingacompletelineintoabytearray:Thejava.net.InetAdd
4、ressclassisJava'shigh-levelrepresentationofanIPaddress,bothIPv4andIPv6.Itisusedbymostoftheothernetworkingclasses,includingSocket,ServerSocket,URL,DatagramSocket,DatagramPacket,andmore.Generally,itincludesbothahostnameandanIPaddress.publicclassInetAddressextendsObjectim
5、plementsSerializableInetAddress类中没有公有的构造函数,但是它有3个静态方法TherearenopublicconstructorsintheInetAddressclass.However,InetAddresshasthreestaticmethodsthatreturnsuitablyinitializedInetAddressobjectsgivenalittleinformation.Theyare:publicstaticInetAddressgetByName(StringhostName
6、)throwsUnknownHostExceptionpublicstaticInetAddress[]getAllByName(StringhostName)throwsUnknownHostExceptionpublicstaticInetAddressgetLocalHost()throwsUnknownHostExceptionSinceDNSlookupscanberelativelyexpensive(ontheorderofseveralsecondsforarequestthathastogothroughsever
7、alintermediateservers,oronethat'stryingtoresolveanunreachablehost)theInetAddressclasscachestheresultsoflookups.Onceithastheaddressofagivenhost,itwon'tlookitupagain,evenifyoucreateanewInetAddressobjectforthesamehost.AslongasIPaddressesdon'tchangewhileyourprogramisrunnin
8、g,thisisnotaproblem.InetAddress类缓存了查找的结果下面程序只对java1.4以前的版本有效Example6-2.Aprogramthatprintstheaddressof208.201.239.37im