千锋逆战班学习日志
千锋逆战班学习第33天
千锋逆战班学习第33天
努力或许没有收获,但不努力一定没收获,加油。
今天我学了Java课程的网络编程。
中国加油!!!武汉加油!!!千锋加油!!!我自己加油!!!
总结-网络编程
- 网络:
- 由点和线构成,表示诸多对象间的相互联系。
- 计算机网络
- 为实现资源共享和信息传递,通过通信线路连接起来的若干主机( Host )。
- 互联网:( Internet )点于点相连。
- 万维网:( WWW - World Wide Web )端与端相连。
- 物联网:( IoT - Internet of things )物与物相连。
- 网络编程:让计算机与计算机之间建立连接、进行通信。
- 网络模型:
- 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.
- TCP协议:Transmission Control Protocol 传输控制协议
- 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
- IPV4:4字节32位整数,并分成4段8位的二进制数,每8位之间用圆点隔开,每8位整数可以转换为一个0~255的十进制整数。
- 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。
- Port:
- 端口号:在通信实体上进行网络通讯的程序的唯一标识。
- 端口分类:
- 公认端口:0 ~ 1023。
- 注册端口:1024 ~ 49151。
- 动态或私有端口:49152 ~ 65535。
- 常用端口:
- MySql: 3306
- Orache: 1521
- Tomcat: 8080
- SMTP: 25
- Web服务器:80
- FTP服务器:21
- 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地址主机名
- 基于TCP的网络编程:
- Socket编程:
- Socket(套接字)是网络中的一个通信节点。
- 分为客户端Socket与服务器ServerSocket。
- 通信要求:IP地址 + 端口号。
- 开发步骤:
- 建立通信连接(会话):
- 创建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
如有错误,请多包涵。