接受端:
package 网络编程;
import java.io.IOException;
import java.net.*;
//一定要先运行接收端,不然会造成数据丢失
public class _5_2_接收端 {
public static void main(String[] args) throws IOException {
byte []b = new byte[1024];
//集装箱
DatagramPacket dp = new DatagramPacket(b, b.length);
//码头
DatagramSocket ds = new DatagramSocket(8888);
ds.receive(dp);//接收数据——————阻塞式方法
byte []line = dp.getData();//获取集装箱中的数据
//将字符数组转换为字符串
String data = new String(line,0,dp.getLength());
System.out.println(data);
String id = dp.getAddress().getHostAddress();//对方IP地址
int port = dp.getPort();//对方端口号(系统随机分配的)
System.out.println("发送端的IP是:"+id+"\n发送端的端口号是:"+port);
}
}
一定要先运行接收端,不然会造成数据丢失
发送端:
package 网络编程;
import java.io.IOException;
import java.net.*;
public class _5_1_发送端 {
public static void main(String[] args) throws IOException {
String str = "hello word";
//字符串转换为字节数组
byte []b = str.getBytes();
//集装箱
DatagramPacket dp = new DatagramPacket(b, b.length,InetAddress.getByName("127.0.0.1"),8888);
//码头
DatagramSocket ds = new DatagramSocket();//可以指定一个端口号,也可以不用
ds.send(dp);
ds.close();
}
}