下面这段代码哪里写错了?为什么编译的时候会报错?将SendDemo类中的端口号换成9000,则又编译通过,这是端口冲突吗?求解释。
public class SendDemo {
public static void main(String[] args) throws SocketException, Exception {
//1.建立udp的socket服务。并指定端口
DatagramSocket ds=new DatagramSocket(10000);
//2.确定要发送的数据。
String str="hi,udp,哥们我来了";
byte[] buf=str.getBytes();
//3.创建数据包服务对象。
DatagramPacket dp=new DatagramPacket(buf,buf.length,InetAddress.getByName("192.168.1.100"),10000);
//4.发送数据。
ds.send(dp);
//5.关闭资源。
ds.close();
}
}
public class ReceDemo {
public static void main(String[] args) throws IOException {
//1.建立udp的socket服务。并指定端口。
DatagramSocket ds=new DatagramSocket(10000);
//2..创建数据包服务对象。
byte[] buf=new byte[1024];
DatagramPacket dp=new DatagramPacket(buf,buf.length);
//3.使用socket对象的receive方法将接收到的数据都存储到数据包的对象中。
ds.receive(dp);
//4.解析数据。
String ip=dp.getAddress().getHostAddress();
byte[] data=dp.getData();
String text=new String(data,0,dp.getLength());
int port=dp.getPort();
System.out.println(ip+"::::"+text+":::"+port);
//5关闭资源。
ds.close();
}
}
|