最新回答 / Airly
第1,你可能没有导入包第2,你可能没有实例化这个对象...比如:DatagramPacket packet = null;而不能DatagramPacket packet;这样会报错。
2016-05-16
是负值的原因建议去了解一个,源码、反码、补码的概念。IP地址是INT 类型的例如: 130在计算机中表示二进制位
00000000 00000000 00000000 10000010 ,当它存入到字节数组中,由于一个字节有8位故,存入后130为 10000010
而二进制中最高位为符号位 (0代表整数,1代表负数),所以1000 0010表示的是一个负数,负数在计算机中是用的补码表示的,要求的源码,1000 0010 要先 -1 得:1000 0001 在求反后得其源码,0111 1110 转化为10进制为 -126.
00000000 00000000 00000000 10000010 ,当它存入到字节数组中,由于一个字节有8位故,存入后130为 10000010
而二进制中最高位为符号位 (0代表整数,1代表负数),所以1000 0010表示的是一个负数,负数在计算机中是用的补码表示的,要求的源码,1000 0010 要先 -1 得:1000 0001 在求反后得其源码,0111 1110 转化为10进制为 -126.
2016-05-16
socket.shutdownInput();不是已经关闭输入流了么,为什么is.close()还需要写么?
2016-05-10
因为byte类型是带符号的,要用System.out.println("字节数组形式的IP:"+Arrays.toUnsignedString(bytes));才会得到正整数输出
2016-05-07
最新回答 / peng1990
找到原因了,老师在client端关闭了io流,这个时候br.readLine()会返回空。如果不关闭io流,br.readLine()会一直阻塞。。。。
2016-05-03