接收端代码: public class UDPReceiverA { public static void main(String[] args) throws IOException { byte[] bytes = new byte[1024]; DatagramSocket socket = new DatagramSocket(8888); DatagramPacket packet = new DatagramPacket(bytes, 1024); socket.receive(packet); byte[] data = packet.getData(); int len = packet.getLength(); System.out.println(new String(data, 0, len)); //对接收端发送 “好的,明天见” // String str = "好的,明天见"; byte[] buf = "好的,明天见".getBytes(); int length = packet.getLength(); if (buf.length < length) { byte[] b = " ".getBytes(); for (int i = 0; i < length; i++) { packet.setData(b ,i,1); System.out.println(packet.getLength()); } } // packet.setData(b, 0, packet.getLength()); // if (buf.length < packet.getLength()) { // int balenceLen = packet.getLength() - buf.length; // byte[] b = " ".getBytes(); // int buflen = buf.length; // for (int i = 0; i < balenceLen; i++) { // packet.setData(b, buflen, 1); // buflen++; // } // } packet.setData(buf); // packet.setData(buf, 0, buf.length); System.out.println(packet.getLength()); socket.connect(InetAddress.getLocalHost(), 9999); socket.send(packet); socket.close(); } }
接收端为什么for循环哪会报错
发送端代码: public class UDPSenderB { static int length; public static void main(String[] args) throws IOException { byte[] bytes = "hello, 明天吃火锅".getBytes(); length = bytes.length; DatagramPacket packet = new DatagramPacket(bytes, bytes.length, InetAddress.getLocalHost(), 8888); DatagramSocket socket = new DatagramSocket(9999); socket.send(packet); socket.receive(packet); byte[] data = packet.getData(); System.out.println(new String(data, 0, data.length)); socket.close(); } }