主题:[原创]InetAddress类的getByAddress()方法
getByAddress(byte[])方法.此方法是用一存放在byte数组里的IP地址来获取一InetAddress对象.
但在实际中发现这是一件颇为麻烦的事.byte范围是-128到127,而IP地址每个段范围是0到255,显然超过了byte的范围了,这就需要转换,把大于127(即大于0111 1111)的数转换为二进制,然而把这个二进制数当作某一负十进制数的补码,对这个补码再求补得到这个负数的十进制原码,将其存入byte[]数组中.比如,要得到以IP 219.133.60.243为参数的InetAddress对象,那么就要求参数为byte{-37,-123,60,-13}.
这还不算,假如需要以用户数入的IP为参数构造一个InetAddress对象,我们就会发现,用户输入的数据都是String型的,要先把这个String用split()方法分解为四个String,然后对每个String用Byte.parseByte()方法转换为byte,但下一步怎么办呢?就是补码原码的转换问题该怎么做呢????
但在实际中发现这是一件颇为麻烦的事.byte范围是-128到127,而IP地址每个段范围是0到255,显然超过了byte的范围了,这就需要转换,把大于127(即大于0111 1111)的数转换为二进制,然而把这个二进制数当作某一负十进制数的补码,对这个补码再求补得到这个负数的十进制原码,将其存入byte[]数组中.比如,要得到以IP 219.133.60.243为参数的InetAddress对象,那么就要求参数为byte{-37,-123,60,-13}.
这还不算,假如需要以用户数入的IP为参数构造一个InetAddress对象,我们就会发现,用户输入的数据都是String型的,要先把这个String用split()方法分解为四个String,然后对每个String用Byte.parseByte()方法转换为byte,但下一步怎么办呢?就是补码原码的转换问题该怎么做呢????