微神-day23

2021-06-21 08:34发布

1.网络编程概念

1.计算机网路: 在不同地区 不同设备 进行资源的共享  实现互联网信息化(计算机信息化时代)

2.网络编程的三要素: IP  端口号   协议

3.IP

  IP:在计算机网络中 每一台设备的唯一的表标识

  分类: IP4 IP6

  IP4 是由4个字节的二进制组成 0101 0000 0101  0101 不便于记忆  ==>IP4是由十进制组成  

  每一个十进制是以.进行分割 192.168.1.103 子网:10.10.11.161(重点)

  IP6:是由16进制组成的 目前国内使用的比较

fe80::5d1:f82d:ce84:3368%13

  查看ip地址  

    windows+r

    输入cmd

    输入指令:ipconfig

  检查服务器(电脑)是否可以连接: ping ip地址  不丢包(不丢数据)

    指令:ping + ip地址

4.端口号:

   端口号:端口号是每一个进程的唯一的标识 正在运行的程序通信的唯一的标识

   端口号可以自己进行设置 也可以由系统来进行分配 端口号的范围是0-65535

   系统的端口号 1-1024 范围之内  设置端口号的时候 不要与系统端口号进行冲突

   常见的默认的端口号:

      mysql:3306

      qq:4000

      tomcat:8080

5.协议

   协议:不同设备进行交互的时候锁遵循的规范 必须遵循这个规范才能进行有效的数据传输

   常见的协议:

   TCP 面向连接的协议 三次握手 进行数据交互  特点: 安全性高 不会丢失数据  效率低

   UDP 面向无连接的协议   特点:安全性低(丢失数据) 效率高(群发短信)

   HTTP 一次性连接的协议  大部分web项目都需要使用这个协议  效率高  数据的缓存  不安全

   HTTPS =HTTP+SSL证书 SSL证书:用于对数据传输的时候进行加密 安全性高

6.TCP的三次握手

    1.客户端发送请求给服务器

    2.服务器收到请求 通知客户端

     3.进行数据传输

 7.UDP协议

     通过包来实现群发数据

 8.http协议

     一次性连接

2.InetAddress

1.此类表示互联网协议 (IP) 地址

2.常规的方法

方法的名称

方法的说明

public static InetAddress getByName(String host)

在给定主机名的情况下确定主机的 IP 地址

public String getHostName()

获取此 IP 地址的主机名

public String getHostAddress()

返回 IP 地址字符串(以文本表现形式)

3.基于Socket进行通信(客户端)

1.Socket 类实现客户端套接字(也可以就叫套接字)。套接字是两台机器间通信的端点

  两个设备可以进行通信与数据传输

2.常用的构造方法

方法的名称

方法的说明

public Socket(String host, int port)

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

3.常用的方法

方法的名称

方法的说明

public InputStream getInputStream()

返回此套接字的输入流

public OutputStream getOutputStream()

返回此套接字的输出流

public void shutdownOutput()

刷新(flush()方法功能是类似)

public void close()

关闭资源

4.基于ServerSocket进行通信(服务器)

  1.ServerSocket 此类实现服务器套接字。服务器套接字等待请求通过网络传入。它基于该请求执行某些操作,然后可能向请求者返回结果。

2.常用的构造方法

方法的名称

方法的说明

public ServerSocket(int port)

创建绑定到特定端口的服务器套接字

3.常规的方法

方法的名称

方法的说明

public Socket accept()

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

5.基于Socket进行-简单的文本进行交互

客户端:

  实例化Socket对象

  获取输入流 输出流

  发送消息

  刷新

  接收服务器的消息

  关闭资源

服务器:

  实例化ServerSocket对象

  进行监听

  获取输入流 输出流

  接收数据

  发送数据

  刷新

  关闭资源

6.基于Socket进行-通信多线程解决方案

客户端:

  实例化Socket对象

  获取输入流 输出流

  发送消息

  刷新

  接收服务器的消息

  关闭资源

服务器:

  实例化ServerSocket对象

  循环进行监听

  实例化线程

  将服务器的操作放到线程中

  (获取输入流 输出流

  接收数据

  发送数据

  刷新

  关闭资源)

  启动线程

7.基于UDP进行通信

1.DatagramSocket 此类表示用来发送和接收数据报包的套接字

2.DatagramSocket 绑定到一个更加具体的地址时广播包也可以被接收 群发

3.构造方法

方法 的名称

方法的说明

public DatagramSocket()

构造数据报套接字并将其绑定到本地主机上任何可用的端口

public DatagramSocket(int port)

创建数据报套接字并将其绑定到本地主机上的指定端口

4.常用方法

方法的名称

方法的说明

public void receive(DatagramPacket p)

从此套接字接收数据报包

public void send(DatagramPacket p)

从此套接字发送数据报包

5.DatagramPacket  此类表示数据报包

6.常用的构造方法

方法的名称

方法的说明

public DatagramPacket(byte[] buf, int length)

构造 DatagramPacket,用来接收长度为 length 的数据包

public DatagramPacket(byte[] buf, int offset, int length, InetAddress address, int port)

构造数据报包,用来将长度为 length 偏移量为 offset 的包发送到指定主机上的指定端口号

7.常用的方法

方法的名称

方法的说明

public byte[] getData()

返回数据缓冲区

8.

客户端

  实例化DatagramSocket

  构建一个包裹对象

  发送包裹

服务端