最赞回答 / 欧简墨
同样的问题,已解决。原因:socket.receive(packet)会锁死对象packet(你看一下receive方法就知道),主线程锁死packet对象后,在start()的子线程中不能调用 packet.属性,packet.方法()。解决办法:while(true){ byte[] data=new byte[1024];//创建字节数组,指定接受的数据包的大小 DatagramPacket packet=new DatagramPacket(data, data.lengt...
2015-08-24
已采纳回答 / needself
你想多了。只要你明白不管前面的还是后面的内容只要是java语言介绍的都是各种各样的面向对象的类线程类,输入输出类因为某些属性及功能而变现的封装代码而已就是一些java提供给你的类别纠结,会用就好
2015-08-23
最新回答 / 叶孤城_007
socket =new Socket("localhost", 8800); ois=new ObjectInputStream(new BufferedInputStream(socket.getInputStream()));socket和ois是不是需要先指定应用类型啊
2015-08-03
已采纳回答 / changing一铭惊人
DatagramPacket p = new DatagramPacket(buf, buf.length);这个要放在while循环里面,因为每一次的receive()都要指定一个特有的DatagramPacket p来接收每一个客户端发过来的请求,如果你放在外面的话,就每一次都要等上一次的数据输出后才能重新接收,这个就没有为每一个客户端各分配一个用来响应的reply了,不知道能不能帮到你!!
2015-08-01