服务器端
import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
public class fwq {
public static void main(String[] args) {
// TODO 自动生成的方法存根
DatagramSocket ds=null;
try {
ds=new DatagramSocket(61666);//创建数据报套接字并将其绑定到本地主机上的指定端口
byte[] by=new byte[1024];
DatagramPacket dp=new DatagramPacket(by, by.length);//构造 DatagramPacket,用来接收长度为 length 的数据包
ds.receive(dp);//从此套接字接收数据报包。
// String s=new String(dp.getData());//第一种方式接受数据。dp.getData返回数据缓冲区。
String s=new String(by);//这里使用第二种
System.out.println(s);
} catch (IOException e) {
// TODO 自动生成的 catch 块
e.printStackTrace();
}
}
}
客户端
import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
public class khd {
public static void main(String[] args) {
// TODO 自动生成的方法存根
DatagramSocket ds=null;
try {
ds=new DatagramSocket();//构造数据报套接字并将其绑定到本地主机上任何可用的端口。
// InetAddress inet=InetAddress.getByName("192.168.1.108");
// ds.connect(inet, 61666);
ds.connect(InetAddress.getByName("192.168.1.108"),61666);//将套接字连接到此套接字的远程地址。
String s="客户端已连接。。。";
byte[]by=s.getBytes();
DatagramPacket dp=new DatagramPacket(by, by.length);//构造 DatagramPacket,用来接收长度为 length 的数据包。
ds.send(dp);//从此套接字发送数据报包。
} catch (IOException e) {
// TODO 自动生成的 catch 块
e.printStackTrace();
}
}
}