网络编程文字版

概念

计算机网络

  • 通常也简称网络,是指容许节点分享资源的数字电信网络[1]:1-3。在电脑网络,电脑设备会透过节点之间的连接(数据链路)互相交换数据。传输介质可分为有线及无线两类——有线的可用到双绞线、光纤电缆等介质[1]:1-4;无线则可用到Wi-Fi、NFC[

  • 总结

    • 将地理位置不同的计算机设备进行连接,实现数据的共享。

网络编程

  • 指编写运行在多个设备(计算机)的程序,这些设备都通过网络连接起来。 java.net 包中J2SE 的API 包含有类和接口,它们提供低层次的通信细节。 你可以直接使用这些类和接口,来专注于解决问题,而不用关注通信细节。

  • 总结

    • 在已有网络的环境下,按照规定实现接受和发送数据即可。中间过程不必关注

网络模型

网络三要素

IP地址

  • 计算网络中,每个计算机的唯一标识

  • IPV4

    • 由32bit组成,即4个字节,每个字节范围0~255,4个数字组成。
  • IPV6

    • 有128bit组成,即16个字节,由8组十六进制数组成
  • DNS

    • 域名解析器 记忆IP地址不方便,出现了使用名称的表示方式 负责解析名称的,最终转为IP地址形式。
  • 本地回环地址

    • 127.0.0.1
      localhost

端口号

  • 计算中每个应用程序的标识,范围是065535,其中01023被系统占用

协议

  • 双方通信的规则

  • 常用:UDP和TCP

  • UDP

    • 用户数据报包协议
    • 面向无连接,不需要与接收端建立连接,直接发送数据。
    • 不可靠协议,因为数据有可能会丢失,效率高。
    •    如:cts、会议软件、发快递
      
  • TCP

    • 传输控制协议

    • 面向有连接,必须双方建立连接受才能进行数据传输。

    • 可靠协议,不会有数据丢,效率低

    • 确定连接

      • 三次握手模式确定连接

        • A发 B接
        • 第一次,A--->B
        • 第二次:B接到,并给A回信息
        • 第三次:A接到

InetAddress

在java中是面向对象思想,因此表示计算机唯一标识的这些数字也看成是一类事物,因此就有对应的对象进行描述--InetAddress。 java.new包

方法

  • InetAddress getByName(String host)

    • 根据host获取InetAddress对象
      host:可以是主机名或主机的IP地址形式
  • InetAddress getLocalhost()

    • 获取本地主机的InetAddress对象
  • String getHostName()

    • 获取主机名
  • String getHostAddress()

    • 获取主机地址

UDP协议

两端:接收端和发送端

端点对象

  • Datagramsocket

包对象

  • DatagramPacket

发送端

  • 1、创建Datagramsocket对象
  • 2、创建DatagramPacket对象,并将数据和接受端信息封装到对象中
  • 3、调用send方法发送
  • 4、关闭

接收端

  • 1、.创建Datagramsocket对象,必须指定端口,要与发送端中的包中的端口号要一致
  • 2、创建DatagramPacket对象,用于接受数据
  • 3、调用receive()方法接包
  • 4、拆包
  • 5、关闭

TCP协议

特点

  • 面向有连接,可靠协议

两端

  • 客户端和服务端

关键字

  • 客户端

    • Socket
  • 服务端

    • ServerSocket

客户端

  • 步骤

    • 1.创建套接字对象,邦定地址,端口号(服务端地址和端口号)
    • 2.获取输出流对象,向服务端写数据
    • 3.关闭套接字
  • Socket构造方法

    • Socket(InetAddress address,int port)

      • 创建一个流套接并将其连接到指定IP地址的指定端口号
    • Socket(String host,int port)

      • 创建一个流套接字并将其连接到指定主机上的指定端口号
  • 方法

    • OutputStream getOutputStream()

      • 返回次套接字的输出流
    • InputStream getInputStream()

      • 返回此套接字的输入流
  • 注意

    • 循环读写时需加方法

      • shutdownInput()
      • shutdownOutput()

服务端

  • 步骤

    • 1.创建服务端端点对象,并邦定端口号(与客户端的端口号要一致)
    • 2.获取Socket对象(侦听要连接的客户端)
    • 3.获取输入流对象,读取客户端数据
    • 4.关闭服务端端点对象
  • ServerSocket构造方法

    • ServerSocket(int port)

      • 创建绑定到特定端口的服务端套接字
  • 方法

    • Socket accept()

      • 侦听并接受到此套接字的连接

广播和组(多)播

UDP协议

  • 单播
  • 广播
  • 组播

广播

  • 一个主机可以与该网络内中的所有主机进行数据共享

  • 广播地址

    • 255.255.255.255

组播

  • 能实现单薄和广播的效果,在同一组中的设备可以进行数据通信
  • 需要使用的对象是,DatagramSocket的字类对象,MulticastSocket
  • 组播的地址是:224.0.0.0~239.255.255.255之间,包括两边,224.0.0.0不建议使用。

方法

  • void joinGroup(InetAddress mcastaddr)

    • 加入多播组
  • void leaveGroup(InetAddress mcastaddr)

    • 离开多播组

网络编程文字版

上一篇:二叉树


下一篇:JDBC batch批处理Statement executeBatch 具体解释