7.9.7网络编程的概括
-
网络编程: 底层数据的传输
-
网页编程: 上层的应用
-
IP : 表示定位节点
-
端口 : 区分软件
-
URL : 统一资源定位符
-
协议 : 标准 , 要求 , 合同 , 协议可以使交流变得更加畅通,更加标准,更加规范.
-
传输层协议 : UDP : 相当于写信, 协议简单,开销小,效率高 不安全 大小有限制,一般不超过60k TCP : 相当于打电话, 面向连接的,安全,效率低 没有大小限制 *
-
IP : 定义互联网中的节点 IPV4 : 4个字节 32位 IPV6 : 128位
-
特殊的IP地址: 192.168.0.0~192.168.255.255 非注册IP,供组织内部使用 127.0.0.1 本地IP localhost : 本地 IP -> 域名 : DNS解析器
-
java.net 网络包 InetAddress : 此类表示Internet协议(IP)地址。
public class Class01_IP { public static void main(String[] args) throws UnknownHostException { //static InetAddress getLocalHost() 返回本地主机的地址。 //获取本机IP地址 InetAddress ip1 = InetAddress.getLocalHost(); System.out.println(ip1); //获取本机的名字 System.out.println(ip1.getHostName());//LAPTOP-A4P3IU3M //获取主机地址 System.out.println(ip1.getHostAddress());//192.168.207.8 //static InetAddress getByName(String host) 根据主机名称确定主机的IP地址。 InetAddress ip2 = InetAddress.getByName("www.TaoBao.com"); //获取名字 System.out.println(ip2.getHostName());//www.TaoBao.com //获取地址 System.out.println(ip2.getHostAddress());//125.74.19.235 } }
7.9.8端口
-
端口 : 区分软件
-
1.2个字节的端口号 0~65535
-
2.同一协议下端口号不能冲突
-
3.8000以内的端口号不推荐使用,称为预留端口号
-
4.常见的端口号: 80 : http 8080 : tomcat 1521 : Oracle 3306 : Mysql
-
-
InetSocketAddress 此类实现IP套接字地址(IP地址+端口号).
public class Class01_Port { public static void main(String[] args) { //InetSocketAddress(String hostname, int port) 根据主机名和端口号创建套接字地址。 //InetSocketAddress(InetAddress addr, int port) 根据IP地址和端口号创建套接字地址。 InetSocketAddress is = new InetSocketAddress("localhost",9999); //获取地址 System.out.println(is); //获取端口号 System.out.println(is.getPort()); //获取域名 System.out.println(is.getHostName()); } }
7.9.9URL
-
url : 统一资源定位符
-
互联网的三大基石之一 : url http html
-
组成: 协议 http 域名 www.baidu.com 端口 80
-
资源 /index.html?username=zhangan&password=123#a
-
URL 类URL表示统一资源定位符,指向万维网上的“资源”的指针。
public class Class01_URL { public static void main(String[] args) throws MalformedURLException { URL url = new URL("http://www.baidu.com:80/index.html?username=zhangsan&password=1234#a"); System.out.println(url); System.out.println("协议 :"+url.getProtocol()); System.out.println("域名 :"+url.getHost()); System.out.println("端口 :"+url.getPort()); System.out.println("资源 :"+url.getFile()); System.out.println("文件路径 :"+url.getPath()); System.out.println("数据 :"+url.getQuery()); System.out.println("锚点 :"+url.getRef()); } }