第十章:网络编程

本文详细介绍了Java网络编程,包括网络编程概述、端口、URL的概念,以及UDP和TCP协议的实现流程。讲解了UDP协议的发送端和接收端的实现,以及TCP协议客户端和服务端的连接过程。同时提到了常用端口号及其含义,以及Java中涉及网络编程的相关类如InetAddress、Socket和ServerSocket等。
摘要由CSDN通过智能技术生成

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

8

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值