已采纳回答 / T天涯灬
你的DatagramSocket socket是主线程的东西,新建的其他线程当然用不了,你把sokect放在公共区用volatile修饰让所有线程共享就可以了,亲测。代码:
public class UDPServer2 { public static v...
2018-09-25
这个原因建议去了解一个,原码、反码、补码的概念。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.
2018-08-28
最赞回答 / HungerCheung
你看的这个章节中:server中仅仅实现了接受来自client的字符串信息的功能,所以在server运行的控制台会显示接收到信息。client中仅仅实现了发送字符串信息的功能,没有接受的功能,所有在它的控制台也就没有信息显示。你继续学习后续这个课程后续的视频,会逐步的完善server和client的功能,到时候client也会显示相应的信息了。望采纳。
2018-08-20
最赞回答 / 幕布斯3021265
找到原因来了,问题在于服务器端是用来BufferedReader的readLine函数,这个函数只用在读到换行符的时候才会结束,不然会一直是阻塞的状态。而我这里发送的时候没有加上换行符就会产生阻塞的现象,而我关闭了输出流,就等与强制结束了readLIne函数的进程,所以也能解决问题。
2018-08-18
最赞回答 / 慕瓜1454717
ip和端口 是服务器端的,也就是服务器一直在侦听本地的指定的端口,等待客户端的连接请求,客户端访问的是服务器端的地址。服务器没有变,只是多客户端访问,所以IP和端口号不变
2018-08-15