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();
}
}