用到两个类:服务端类(Server)、客户端类(Client)
服务端类(Server)::
/*
* Datagram通讯
* */
public class Client {
public static void main(String[] args) {
//字符冲<->getBytes 构造方法
//字符串<->toCharArray 构造方法
//字符串<->数字 Xxx.parseXxx(Xxx指的是包装类) valueof
try (DatagramSocket s = new DatagramSocket();){
String str = "搭建,我是啊良啊";
//把字符串str封装到数据报中,发送给ip为127.0.0.0主机上,端口为8008
DatagramPacket p = new DatagramPacket(str.getBytes(),str.getBytes().length, InetAddress.getByName("localhost"),8008);
//发送数据报,如果没有收到数据报,该方法是阻塞的,直到收到数据才能执行
s.send(p);
} catch (SocketException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
客户端类(Client):
public class Server {
public static void main(String[] args) {
try ( //创建
DatagramSocket s = new DatagramSocket(8008)){
byte[] b = new byte[1024];
//创建数据报,用来封装用户数据,指定接收数据的数组以及长度
DatagramPacket p = new DatagramPacket(b,b.length);
//接收数据存入数据报
s.receive(p);
//获取到接收到的数据
byte[] data = p.getData();
//转换换成字符串输出
System.out.println("客户端发送过来的:"+new String(data,0,data.length));
} catch (SocketException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}