这是数据接受端代码:
import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.SocketException;
public class ReceiveUDP {
public static void main(String[] args) throws IOException {
//定义Socket,并开放一个端口,用来接受数据
int port=10000;
DatagramSocket ds = new DatagramSocket(port);
//定义一个数据缓冲池,用来存放接收到的数据
byte bytes[] = new byte[1024];
DatagramPacket dp = new DatagramPacket(bytes,bytes.length);
//用Receive方法将接收的内容放入数据缓冲池
ds.receive(dp);
System.out.println(dp.getPort()+":");
System.out.println(new String(dp.getData()));
ds.close();
}
}
这是发送数据端代码:
import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
import java.net.SocketException;
import java.net.UnknownHostException;
public class UDPSend {
public static void main(String[] args) throws IOException {
DatagramSocket ds = new DatagramSocket(10000,InetAddress.getByName("127.0.0.1"));
byte bytes[] = "hello,UDP".getBytes();
DatagramPacket dp = new DatagramPacket(bytes,bytes.length);
//发送数据
ds.send(dp);
System.out.println("sent!");
ds.close();
}
}
运行后出现问题:
Exception in thread "main" java.net.BindException: Address already in use: Cannot bind
at java.net.DualStackPlainDatagramSocketImpl.socketBind(Native Method)
at java.net.DualStackPlainDatagramSocketImpl.bind0(Unknown Source)
at java.net.AbstractPlainDatagramSocketImpl.bind(Unknown Source)
at java.net.DatagramSocket.bind(Unknown Source)
at java.net.DatagramSocket.(Unknown Source)
at java.net.DatagramSocket.(Unknown Source)
at UDPSend.main(UDPSend.java:11)
请各位大神帮忙看看是什么问题,怎么解决?