DatagramSocket(邮递员):对应数据报的Socket概念,不需要创建两个socket,不可使用输入输出流。 DatagramPacket(信件):数据包,是UDP下进行传输数据的单位,数据存放在字节数组中。 UDP也需要现有Server端,然后再有Client端。 两端都是DatagramPacket(相当于电话的概念),需要NEW两个DatagramPacket。 InetAddress:网址 这种信息传输方式相当于传真,信息打包,在接受端准备纸。 模式: 发送端:Server: DatagramPacket inDataPacket=new DatagramPacket ((msg,msg.length); InetAdress.getByName(ip),port); 接收端: clientAddress=inDataPack.getAddress();//取得地址 clientPort=inDataPack.getPort();//取得端口号 datagramSocket.send; //Server datagramSocket.accept; //Client 注意比较: http://Localhost:8080/directory //查找网络服务器的目录 file://directory //查找本地的文件系统 java的开发主要以http为基础。 反射:主要用于工具和框架的开发。 反射是对于类的再抽象;通过字符串来抽象类。 JAVA类的运行:classLoader:加载到虚拟机(vm) Vm中只能存储对象(动态运行时的概念),.class文件加载到VM上就成为一个对象,同时初始静态成员及静态代码(只执行一次)。 Lang包下有一个类为Class:在反射中使用。此类中的每个对象为VM中的类对象,每个类都对应类类的一个对象(class.class)。 例:对于一个Object类,用getClass()得到其类的对象,获得类的对象就相当于获得类的信息,可以调用其下的所有方法,包括类的私有方法。 注意:在反射中没有简单数据类型,所有的编译时类型都是对象。 反射把编译时应该解决的问题留到了运行时。 |