`

反射代码

 
阅读更多
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();
	}
}





 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics