JavaSE——网络编程

1. 概述

  • 网络编程:使用套接字(socket)来达到进程间通信,现在一般称为TCP/IP编程

  • 套接字(socket):网络上具有唯一标识的IP地址和端口号组合在一起才能构成唯一能识别的标识符套接字。

  • 套接字原理机制
    通信的两端都有Socket。
    网络通信其实就是Socket间的通信。
    数据在两个Socket间通过IO传输。

  • 网络编程三要素①IP地址:InetAddress: 网络中设备的标识,不易记忆,可用主机名;②端口号: 用于标识进程的逻辑地址,不同进程的标识;③传输协议: 通讯的规则常见协议:TCP,UDP。

  • IP地址分类
    A类:1.0.0.1—127.255.255.254
    (1)10.X.X.X是私有地址(私有地址就是在互联网上不使用,而被用在局域网络中的地址)
    (2)127.X.X.X是保留地址,用做循环测试用的。
    B类:128.0.0.1—191.255.255.254 172.16.0.0—172.31.255.255是私有地址。
    C类:192.0.0.1—223.255.255.254 192.168.X.X是私有地址
    D类: 224.0.0.1—239.255.255.254
    E类: 240.0.0.1—247.255.255.254

  • 参考模型JavaSE——网络编程

2. InetAddress类

  • 表示互联网协议 (IP) 地址,方便我们对IP地址的获取和操作。
  • InetAddress.getByName(String host) //在给定主机名的情况下获取主机的IP地址
  • inetAddress.getHostAddress() //获取IP
  • inetAddress.getHostName() //获取主机名
  • 实例JavaSE——网络编程
  • 运行结果
    JavaSE——网络编程

3. 端口

  • 端口表示计算机上的一个程序的进程;端口的表示是一个16位的二进制数,2个字节,对应十进制的0~65535;单个协议下,端口号不能冲突,多个协议下,端口号可以相同;
  • 分类:公有端口:0~1023
    程序注册端口:1024~49151,用户分配或者程序
    动态、私有:49152~65535
  • 实例
    JavaSE——网络编程
  • 运行结果
    JavaSE——网络编程

4. TCP协议

  • TCP协议:用户传输协议,是可靠连接,类似于打电话,只有等待对方接通的时候才可以交流,也就是确认了对方可以传信息,才会发送信息,三次握手,四次挥手,但是传输速度慢;

4.1 传输消息

  • 实例:
    客户端:

    JavaSE——网络编程
    服务器JavaSE——网络编程

  • 运行结果
    JavaSE——网络编程

4.2 文件上传

  • 实例:
    客户端:
    JavaSE——网络编程
    服务端JavaSE——网络编程

  • 运行结果
    JavaSE——网络编程

5. UDP协议

  • UDP协议:用户数据报协议,是不可靠的,就像发短信,发出去就完事了,对方是否接收到就与自己无关,但是传输速度快;
  • 实例
    用户端

JavaSE——网络编程
服务器JavaSE——网络编程

  • 运行结果
    JavaSE——网络编程

6. URL

  • 统一资源定位符:定位资源的,定位互联网上的某一个资源

  • 实例JavaSE——网络编程

  • 运行结果
    JavaSE——网络编程

7. 下载资源

  • 代码JavaSE——网络编程