package reflecct; import java.lang.reflect.Field; public class ReflectDemo { public static void main(String[] args) throws NoSuchFieldException, SecurityException, IllegalArgumentException, IllegalAccessException { //获取ReflectPoint中私有的成员变量值 //创建ReflectPoint对象 ReflectPoint point = new ReflectPoint(3,5); //返回字段类Y变量 Field fieldy=point.getClass().getField("y"); //获取指定对象y字段 int value=fieldy.getInt(point); System.out.println(value); //返回字段类X变量getDeclaredField(获取私有的) Field fieldx=point.getClass().getDeclaredField("x"); //设置可修改字段 fieldx.setAccessible(true); //获取指定对象y字段 int valuex=fieldx.getInt(point); System.out.println(valuex); } } package reflecct; public class ReflectPoint { private int x; public int y; public ReflectPoint(int x,int y) { this.x=x; this.y=y; } } UDP package udp; import java.io.IOException; import java.net.DatagramPacket; import java.net.DatagramSocket; public class Receive { public static void main(String[] args) throws IOException { System.out.println("接收端启动"); //创建接收端套接词 DatagramSocket socket = new DatagramSocket(5003); //循环接受数据 while (true) { //创建数据报包接受发送端传来的数据报包 DatagramPacket packet = new DatagramPacket(new byte[1024],1024); //接受数据报包 socket.receive(packet); //取出数据 byte[] datas=packet.getData(); int len=datas.length; //解码 String mess=new String(datas,0,len); System.out.println(mess); if (mess.equals("bye")) { break; } } socket.close(); } } package udp; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.net.DatagramPacket; import java.net.DatagramSocket; import java.net.InetAddress; public class Send { public static void main(String[] args) throws IOException { System.out.println("发送端启动"); //创建发送端套接词 DatagramSocket socket=new DatagramSocket(); //准备数据报包数据,系统输入 BufferedReader br=new BufferedReader(new InputStreamReader(System.in)); while(true) { //读取数据 String mess=br.readLine(); //转字节数组 byte[] datas=mess.getBytes(); int len=datas.length; //创建数据报包 DatagramPacket packet=new DatagramPacket(datas,len,InetAddress.getByName("PC-20150131PIUS"), 5003); socket.send(packet); if ("bye".equals(mess)) { break; } } socket.close(); } } package udp; import java.io.IOException; import java.net.DatagramPacket; import java.net.DatagramSocket; public class ReceiveTest1 { public static void main(String[] args) throws IOException { // 1. 创建Socket . DatagramSocket socket = new DatagramSocket(5002); // 2. 创建packet(数据报包) DatagramPacket packet = new DatagramPacket(new byte[1024], 1024); while (true) { // 3.使用专业的方法接收数据报包 socket.receive(packet); // 获取的是发送端的ip地址. String ip = packet.getAddress().getHostAddress(); System.out.println(ip + "进来了..."); // 4. 获取数据(获取到了存储数据的缓冲区). byte[] datas = packet.getData(); // 5 获取数据的长度. int len = packet.getLength(); // 6. 解码. String mess = new String(datas, 0, len); System.out.println(mess); if ("bye".equals(mess)) { System.out.println(ip + "离开了..."); break; } } socket.close(); } } package udp; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.net.DatagramPacket; import java.net.DatagramSocket; import java.net.InetAddress; public class SendTest1 { public static void main(String[] args) throws IOException { // 1.控制台获取用户的输入. BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); // 2. 创建Socket DatagramSocket socket = new DatagramSocket(); while(true){ System.out.println("请输入:"); String mess = br.readLine(); // 3. 字符串转换为字节数组. byte[] buffer = mess.getBytes(); // 4. 创建数据报包对象,封装数据. DatagramPacket packet = new DatagramPacket(buffer, buffer.length, InetAddress.getByName("192.168.15.255"), 5002); // 5. 发送数据报包. socket.send(packet); if("bye".equals(mess)){ break; } } // 6.关闭socket. socket.close(); } }
反射代码
猜你喜欢
转载自huanxiang0220.iteye.com/blog/2196800
今日推荐
周排行