千锋逆战班学习日志


千锋逆战班学习第33天
努力或许没有收获,但不努力一定没收获,加油。
今天我学了Java课程的网络编程。
中国加油!!!武汉加油!!!千锋加油!!!我自己加油!!!

总结-网络编程

  1. 网络:
  • 由点和线构成,表示诸多对象间的相互联系。
  1. 计算机网络
  • 为实现资源共享和信息传递,通过通信线路连接起来的若干主机( Host )。
  • 互联网:( Internet )点于点相连。
  • 万维网:( WWW - World Wide Web )端与端相连。
  • 物联网:( IoT - Internet of things )物与物相连。
  • 网络编程:让计算机与计算机之间建立连接、进行通信。
  1. 网络模型:
  • OSI ( Oper System Interconnection )开放式系统互联。
    千锋逆战班学习日志
  • TCP/IP模型:
    • 一组用于实现网络互联的通信协议,将协议分成四个层次。
      千锋逆战班学习日志
  • TCP/UDP:
    • TCP协议:Transmission Control Protocol 传输控制协议
      • 是一种面向连接的、可靠的、基于字节流的传输层通信协议。
      • 数据大小无限制。
      • 建立连接的过程需要三次握手,断开连接的过程需要四次挥手。
      • 握手:
        • 第一次握手:发包。Client什么都不能确认;Server确认了对方发送正常。
        • 第二次握手:收包。Client确认了:自己发送、接收正常,对方发送、接收正常;Server确认了:自己接收正常,对方发送正常。
        • 第三次握手:签名确认收到包。Client确认了:自己发送、接收正常,对方发送、接收正常;Server确认了:自己发送、接收正常,对方发送接收正常。
      • 挥手:
        • 第一次挥手:Client发送一个FIN,用来关闭Client到Server的数据传送,Client进入FIN_WAIT_1状态。
        • 第二次挥手:Server收到FIN后,发送一个ACK给Client,确认序号为收到序号+1(与SYN相同,一个FIN占用一个序号),Server进入CLOSE_WAIT状态。
        • 第三次挥手:Server发送一个FIN,用来关闭Server到Client的数据传送,Server进入LAST_ACK状态。
        • 第四次挥手:Client收到FIN后,Client进入TIME_WAIT状态,接着发送一个ACK给Server,确认序号为收到序号+1,Server进入CLOSED状态,完成四次挥手。
    • UDP协议:User Datagram Protocol 用户数据报协议:
      • 是一种无连接的传输层协议,提供面向事务的简单不可靠信息传送服务,每个包的大小64KB.
  1. IP:
  • IP协议:Internet Protocol Address 互联网协议地址/网际协议地址。
    • 分配给互联网设备的数字标签(唯一标识)。
  • IP地址分为两种:
    • IPV4:4字节32位整数,并分成4段8位的二进制数,每8位之间用圆点隔开,每8位整数可以转换为一个0~255的十进制整数。
      • 格式:D.D.D.D 例:255.255.255.255
    • IPV6:16字节128位整数,并分成8段十六进制数,每16位之间用圆点隔开,每16位整数可以转换为一个0~65535的十进制整数。
      • 格式:X.X.X.X.X.X.X.X 例:FFFF.FFFF.FFFF.FFFF.FFFF.FFFF.FFFF.FFFF
  1. IPV4的应用分类:
  • A类:*机构,1.0.0.1 ~ 126.255.255.254。
  • B类:中型企业,128.0.0.1 ~ 191.255.255.254。
  • C类:个人用户,192.0.0.1 ~ 223.255.255.254。
  • D类:用于组播,224.0.0.1 ~ 239.255.255.254。
  • E类:用于实验,240.0.0.1 ~ 255.255.255.254。
  • 回环地址:127.0.0.1,指本机,一般用于测试使用。
  • 查看IP命令:ipconfig。
  • 测试IP命令:ping D.D.D.D。
  1. Port:
  • 端口号:在通信实体上进行网络通讯的程序的唯一标识。
  • 端口分类:
    • 公认端口:0 ~ 1023。
    • 注册端口:1024 ~ 49151。
    • 动态或私有端口:49152 ~ 65535。
  • 常用端口:
    • MySql: 3306
    • Orache: 1521
    • Tomcat: 8080
    • SMTP: 25
    • Web服务器:80
    • FTP服务器:21
  1. InetAddress类:
  • 概念:表示互联网协议(IP)地址对象,封装了与该IP地址相关的所有信息,并提供获取信息的常用方法。
  • 方法:
    • public static InetAddress getLocalHost() //获得本地主机地址对象
    • public static InetAddress getByName(String host) //根据主机名称获得地址对象
    • public static InetAddress[] getAllByName(String host) //获得所有相关地址对象
    • public String getHostAddress() //获得IP地址字符串
    • public String getHostName() //获得IP地址主机名
  1. 基于TCP的网络编程:
  • Socket编程:
    • Socket(套接字)是网络中的一个通信节点。
    • 分为客户端Socket与服务器ServerSocket。
    • 通信要求:IP地址 + 端口号。
  1. 开发步骤:
  • 建立通信连接(会话):
    • 创建ServerSocket,指定端口号。
    • 调用accept等待客户端接入。
  • 客户端请求服务器:
    • 创建Socket,指定服务器IP + 端口号。
    • 使用输出流,发送请求数据给服务器。
    • 使用输入流,接收相应数据到客户端(等待)。
  • 服务器响应客户端:
    • 使用输入流,接受请求数据到服务器(等待)。
    • 使用输出流,发送响应数据给客户端。

Question_13_1

1.填空:
TCP和UDP都是传输层协议,TCP ____ (有连接I无连接)的协议,UDP ____ (有连接| 无连接)的协议。这两种协议中, _____ 协议更安全,而 ____协议传输效率更高。

答:有连接;无连接;TCP;UDP

Question_13_2

2.(Socket 对象)有以下代码:Socket s = new Socket("192.168.0.100”,9000);
以下说法正确的是:
A.这句代码创建了一个Socket对象的同时,创建了一个到192.168.0.100地址上9000端口的TCP连接
B.这句代码有可能产生异常
C.创建的Socket对象,对其调用getPort方法,返回值为9000
D.创建的Socket对象,对其调用getLocalPort方法,返回值为9000
E.关闭网络连接时,应当先分别关闭输入输出流,再关闭socket对象本身

答:ABC

Question_13_3

3.(ServerSocket 对象)有以下代码 ServerSocket ss = new ServerSocket(9000);
以下说法正确的是:
A,这句代码创建了一个ServerSocket对象的同时,把该对象绑定到本机上的9000端口。
B,对ss调用getLocalPort方法,返回值为9000。
C.对ss调用getlnputStream和getOutputStream方法可以获得输入输出流,并与客户端通信

答:AB

Question_13_4

填空:
一般而言,创建一个TCP客户端,有以下几步:
I.创建一个Socket对象。
II.调用____方法和 方法获得输入输出流
III.利用输入输出流,读写数据
IV. 关闭

创建一个多线程的TCP服务器,有以下几步:
I.创 ____对象。
II.调用该对象的____方法,以获取客户端的连接。该方法返回一个 ____对象。
III.利用返回的对象,创建一个新线程。
IV.在新线程中完成读写操作。
V.在新线程中调用 _____对象的close方法。

答:
getInputStream getOutputStream
socket
ServerSocket
accepte Socket
Socket

如有错误,请多包涵。