JAVA基础知识六(网络编程、反射)
作者:互联网
十、网络编程
计算机网络:
总结:将地理位置不同的计算机设备进行连接,实现数据的共享。
网络编程:
总结:在已有网络的环境下,按照规定实现接收和发送数据即可。
网络模型:
1.网络编程三要素:
1. IP地址:
计算网络中,每个计算机的唯一标识。
IPV4: 由32bit组成,即4个字节,每个字节范围0~255,4个数字组成。
IPV6: 有128bit组成,即16个字节,由8组十六进制数组成
DNS:域名解析器 记忆IP地址不方便,出现了使用名称的表示方式
负责解析名称的,最终转为IP地址形式。
本地回还地址:127.0.0.1 localhost
2. 端口号:
计算中每个应用程序的标识,范围是0~65535 ,其中0~1023被系统占用
3. 协议:
双方通信的规则。
常用:UDP 和 TCP
用户数据报包协议
面向无连接,不需要与接收端建立连接,直接发送数据。
不可靠协议,因为数据有可能会丢失,效率高。
传输控制协议
面向有连接,必须双方建立连接受才能进行数据传输。
可靠协议,不会有数据丢,效率低。
三次握手模式确定连接。
A 发 B 接
第一次,A--->B
第二次:B接到,并给A回信息
第三次:A接到
比如:打电话
InetAddress
在java中是面向对象思想,因此表示计算机唯一标识的这些数字也看成是一类事物,因此就有对应的对象进行描述--InetAddress。
java.net包。
InetAddress getByName(String host) :根据host获取InetAddress对象
host:可以是主机名或主机的IP地址形式
InetAddress getLocalhost() : 获取本地主机的InetAddress对象
String getHostName(): 获取主机名
String getHostAddress(): 获取主机地址
2.UDP
UDP协议
//创建InetAddress对象 //没有构造方法,只有几个静态方法可以返回这一个InetAddress 类型的对象 InetAddress inetAddress = InetAddress.getByName("baidu.com");//可以是机器名称,可以是IP地址 System.out.println(inetAddress); String hostName = inetAddress.getHostName(); System.out.println(hostName);
1.发送
两端:接收端 和 发送端
端点对象: Datagramsocket
包对象: DatagramPacket
1.创建Datagramsocket对象
2.创建DatagramPacket对象,并将数据和接收端信息封装到对象中
3.调用send方法发送
4.关闭
//创建端点对象 DatagramSocket ds = new DatagramSocket(); //1.创建包对象 //2.设置接收端信息,内容信息 byte[] massage = "你好".getBytes(); int len = massage.length; InetAddress ip = InetAddress.getByName("local"); int port = 9999; //设置四个参数,发送的信息(字节数组类型)、长度、对方的ip、对方的端口号 DatagramPacket dp = new DatagramPacket(massage,len,ip,port); //3.发包 ds.send(dp); System.out.println("数据已发送"); //4.关闭