| 
 
| package cn.itcast.net.p3.chat; 
 import java.net.DatagramPacket;
 import java.net.DatagramSocket;
 
 public class Rece implements Runnable {
 
 private DatagramSocket ds;
 
 public Rece(DatagramSocket ds) {
 this.ds = ds;
 }
 
 @Override
 public void run() {
 try {
 while (true) {
 
 // 2,创建数据包。
 byte[] buf = new byte[1024];//要是这里1024不够存储接受的数据,你们会怎么写,但是不知道该怎么实现。
 DatagramPacket dp = new DatagramPacket(buf, buf.length);
 
 // 3,使用接收方法将数据存储到数据包中。
 ds.receive(dp);// 阻塞式的。
 
 // 4,通过数据包对象的方法,解析其中的数据,比如,地址,端口,数据内容。
 String ip = dp.getAddress().getHostAddress();
 int port = dp.getPort();
 String text = new String(dp.getData(), 0, dp.getLength());
 
 System.out.println(ip + "::" + text);
 if(text.equals("886")){
 System.out.println(ip+"....退出聊天室");
 }
 
 }
 } catch (Exception e) {
 
 }
 
 }
 
 }
 UDP网络编程接受端,new接收包类时定义的字节数组容量不够存储接收的数据,我准备用while循环 将数据存到buf中,没存满一次就添加到接受包的后面。是这样子的么??
 | 
 |