import java.net.*;
class UdpSend
{
public static void main(String[] args) throws Exception
{
//建立连接
DatagramSocket ds=new DatagramSocket();
//提供数据
byte[] buf="我来了".getBytes();
DatagramPacket dp=
new DatagramPacket(buf,buf.length,InetAddress.getByName("192.168.0.1"),10000);
//发送数据
ds.send(dp);
//关闭资源
ds.close();
System.out.println(buf);
}
}
//import java.net.*;
class UdpRece
{
public static void main(String[] args) throws Exception
{
//创建端口,监听端口
DatagramSocket ds=new DatagramSocket(10000);
//定义存储数据报
byte[] buf=new byte[1024];
DatagramPacket dp=new DatagramPacket(buf,buf.length);
//存储数据
ds.receive(dp);
//调用存储数据包的方法 分类接收数据
String ip=dp.getAddress().getHostAddress();
String data=new String(dp.getData(),0,dp.getLength());
int port=dp.getPort();
System.out.println("ip="+ip+"::"+data+"port::"+port);
//关闭资源
ds.close(); }
}
异常为:Exception in thread "main" java.net.BindException: Address already in use: Cannot bind
at java.net.PlainDatagramSocketImpl.bind0(Native Method)
at java.net.PlainDatagramSocketImpl.bind(PlainDatagramSocketImpl.java:91)
at java.net.DatagramSocket.bind(DatagramSocket.java:372)
at java.net.DatagramSocket.<init>(DatagramSocket.java:211)
at java.net.DatagramSocket.<init>(DatagramSocket.java:262)
at java.net.DatagramSocket.<init>(DatagramSocket.java:235)
at UdpRece.main(UdpRece.java:7)
class UdpSend
{
public static void main(String[] args) throws Exception
{
//建立连接
DatagramSocket ds=new DatagramSocket();
//提供数据
byte[] buf="我来了".getBytes();
DatagramPacket dp=
new DatagramPacket(buf,buf.length,InetAddress.getByName("192.168.0.1"),10000);
//发送数据
ds.send(dp);
//关闭资源
ds.close();
System.out.println(buf);
}
}
//import java.net.*;
class UdpRece
{
public static void main(String[] args) throws Exception
{
//创建端口,监听端口
DatagramSocket ds=new DatagramSocket(10000);
//定义存储数据报
byte[] buf=new byte[1024];
DatagramPacket dp=new DatagramPacket(buf,buf.length);
//存储数据
ds.receive(dp);
//调用存储数据包的方法 分类接收数据
String ip=dp.getAddress().getHostAddress();
String data=new String(dp.getData(),0,dp.getLength());
int port=dp.getPort();
System.out.println("ip="+ip+"::"+data+"port::"+port);
//关闭资源
ds.close(); }
}
异常为:Exception in thread "main" java.net.BindException: Address already in use: Cannot bind
at java.net.PlainDatagramSocketImpl.bind0(Native Method)
at java.net.PlainDatagramSocketImpl.bind(PlainDatagramSocketImpl.java:91)
at java.net.DatagramSocket.bind(DatagramSocket.java:372)
at java.net.DatagramSocket.<init>(DatagramSocket.java:211)
at java.net.DatagramSocket.<init>(DatagramSocket.java:262)
at java.net.DatagramSocket.<init>(DatagramSocket.java:235)
at UdpRece.main(UdpRece.java:7)
2, UdpRece 运行后不会马上退出 ,一直会等待,所以检查下是不是有之前未退出的UdpRece 占用了 端口。
扫描端口,验证一下
netstat -an