【训练大纲017】
上午学习目标:
1 掌握TCP和UDP
2 掌握InetAddress和InetSocketAddress类的使用
1. TCP和UDP协议的区别
(1) 数据的传输模式有哪两种?
答:TCP和UDP两种传输模式。
(2) TCP和UDP协议的区别是什么?
答:TCP是面向连接的,传输数据安全,稳定,效率相对较低。而UDP是一种无连接的传输层协议,提供面向事物的简单不可靠信息传送服务。基于TCP协议的Socket编程通信双方需要建立连接,连接建立时双方存在主次之分,而基于UDP协议的Socket编程通信双方不需要建立连接,通信双方完全平等。
2. TCP协议数据传递细节
(1) TCP通信原理是什么?
答:服务器端创建ServerSocket,在指定端口监听并处理请求,客户端创建Socket,向服务器发送请求。
(2) 简述TCP通信的步骤?
答:1、主机通过IP地址和端口向服务器发送请求:outputStream。
2、服务器通过accept方法接收到主机的请求(inputstream)。
3、服务器响应主机的请求,向主机发送数据(outputstream)。
3. UDP协议数据传递细节
(1) 简述UDP协议的特点?
答:1、非面向连接
2、不安全
3、存在丢包
4、性能较高
(2) 请你举例生活中的哪些应用使用到了UDP?
答:生活中寄快递,寄信,发短信等都使用了UDP协议。
4. InetAddress类_InetSocketAddress类
(1) InetAddress类的作用及常用方法是什么?
答:两个静态方法
1、getLocalHost:返回本机地址
2、getByName:根据域名DNS对应的去解析IP地址
两个成员方法
1、getHostAdress:获取主机IP地址
2、getHostName:获取计算机名
(2) InetSocketAddress类的作用及常用方法是什么?
答:1、作用:包含IP和端口信息,常用于Socket通信。此类实现 IP 套接字地址(IP 地址 + 端口号),不依赖任何协议。
2、方法getAddress(),getPort(),getHostName()
下午学习目标:
1 掌握URL类的使用
2 掌握TCP的Socket双向通信
3 掌握使用TCP协议的Socket编写聊天室
4 掌握使用UDP实现客户咨询
1. URL类_爬虫原理
(1) URL指的是什么?作用是什么?
答:URL指的是一个统一资源定位符,由四部分组成:协议、存放资源的主机域名、端口号、和资源文件名。
(2) URL的常用方法有哪些?
答:1、getProtocal():获取URL的协议名称。
2、getHost():获取此URL的主机名(如果适用)。
3、getPort():获取URL的端口号。
4、getFile():获取此URL的文件名。
5、getDefaultPort():获取与此URL关联协议的默认端口号。
6、getPath():获取此URL的路径部分。
2. 基于TCP协议的Socket编程_双向通信_实现单次请求与响应
(1) 请你画出Soket编程实现一次双向通信的传输示意图?
答:如图
(2) 实现一次单次请求与响应,客户端与服务器的操作步骤是什么?
答:服务器端的操作步骤:
1、创建ServerSocket对象
2、监听是否有客户端来请求连接
3、获取输入流
4、获取输出流
5、关闭流,关闭Socket
客户端的操作步骤:
1、创建Socket对象
2、获取输出流
3、获取输入流
4、关闭流
3. 基于TCP协议的Socket编程_双向通信_实现模拟用户登录
(1) 请你画出双向通信用户登录的示意图?
答:如图
(2) 简述用户登录的过程客户端与服务器的功能?
答:客户端输入账号和密码,将账号和密码封装成对象,将用户对象发送到服务器端,服务器端接收到用户对象,对输入的账号和密码进行验证,将验证的结果发回客户端作为响应,客户端接收结果,是否登陆成功。
4. 基于TCP协议的Socket编程_聊天室_客户端多线程
(1) 简述客户端与服务器端单次聊天的缺点?
答:单次聊天的缺点:只能客户端先发送数据,然后才能接收数据,如果不发就收不到(接收和发送是在同一个线程实现的),不符合实际情况。
(2) 单次聊天的缺点的解决方案是什么?
答:1、多次聊天可以使用循环来解决
2、先发后收的问题可以使用线程来解决,一个接收数据的线程,一个发送数据的线程。
5. 基于TCP协议的Socket编程_聊天室_群聊
(1) 简述实现群聊的原理?
答:一个客户端发送数据,通过服务器线程转发给其他客户端。
(2) 简述群聊实现的步骤?
答:1、编写客户端接收和发送的线程
3、服务器端编写一个“MyChannel”线程类,每个客户端都是一条路径
4、当一个客户端连接进来,即添加到集合中
5、遍历集合转发数据给其他客户端。
6. UDP通信_DatagramSocket实现_客户咨询
(1) 简述UDP通信的原理?
答:当服务器要向客户端发送数据时,需要在服务器端产生一个DatagramSocket对象,在客户端产生一个DatagramSocket对象。服务器端的DatagramSocket将DatagramPacket发送到网络上,然后被客户端的DatagramSocket接收。
(2) UDP编程的步骤?
答:1. 创建客户端的DatagramSocket,创建时,定义客户端的监听端口。
2. 创建服务器端的DatagramSocket,创建时,定义服务器端的监听端口。
3. 在服务器端定义DatagramPacket对象,封装待发送的数据包。
4. 客户端将数据报包发送出去。
5. 服务器端接收数据报包。