栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Socket作业

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Socket作业

目录

1.ServerSocket 服务端步骤

2.Socket 客户端步骤

3.NIO核心是什么

4.ByteBuffer: 是类还是接口(类)

1.子类有哪些

2.写出8个方法是什么,分别代表什么含义

5.Channel接口

1.主要实现类,列举出3个

2.特点是什么

6.获取通道有哪3种方式

7.nio实现文件拷贝思路是什么

8、请问TCP和UDP协议有什么差别?


1、请问哪个协议是一种可靠的传输层协议?()

A、TCP

B、UDP

C、IP(不负责保证可靠性)

D、ARP(根据IP地址获取物理地址的协议)

参考答案:A

2、请问哪个协议可以用于Internet上的控制文件的双向传输?()

A、TCP

B、UDP

C、IP

D、FTP

参考答案:D

3、一台计算机上可以运行多个服务,服务用什么来区别?()

A、IP地址

B、HOST名字

C、端口号

D、用户名

参考答案:C

4、Java语言API中使用哪两个类实现TCP协议通讯编程?()

A、Socket和ServerSocket

B、Reader和Writer

C、URL和Connection

D、Client和Server(客户端 和 服务器)

参考答案:A

5、ServerSocket类中哪个方法可以接收客户端的请求?()

A、receive

B、accept

C、connect

D、get

参考答案:B

简答题

1.ServerSocket 服务端步骤

1.ServerSocket 服务端

1.ServerSocket serverSocket=new ServerSocket(8888);

2.调用 accept()方法监听客户端发来的请求:Socket socket=serverSocket.accept();

3.开管:得到输入和输出流

InputStream in=socket.getInputStream();

OutoutStream out=socket.getOutputStream();

4.使用输入流得到信息,使用输出流发信息

2.Socket 客户端步骤

1.Socket socket=new Socket(IP,8888);
2.开管:得到输入和输出流
InputStream in=socket.getInputStream();
OutoutStream out=socket.getOutputStream();
3.使用输出流发信息(socket.shutdownOutput()输出-1 标志),使用输入流得到信息

3.NIO核心是什么

核心API
   1.Channel 通道 打开到IO设备的连接 负责传输
   2.Buffer 缓冲区 存储数据

主要有三大核心部分:Buffer、Channel和Selector。

其中Buffer可以被看成是一个容器,其本质是一个数组缓冲区,读入或写出到Channel中的所有对象都会先放在Buffer中;Channel是对传统的输入/输出的模拟,在NIO中,所有的数据都需要通过通道流的形式传输;Selector(选择器)用于监听多个通道的事件(例如:连接打开、数据到达等),主要用于多线程处理。

4.ByteBuffer: 是类还是接口(类)

1.子类有哪些

DirectByteBuffer、DirectByteBufferR、HeapByteBuffer、HeapByteBufferR

2.写出8个方法是什么,分别代表什么含义
  1. 1.分配指定大小的缓冲区:ByteBuffer.allocate(len);//以字节为单位

    2.存数据:put():存入数据到缓冲区

    3.取数据:get():获取缓冲区的数据

    4.flip() :切换到都读数据模式 position归0

    5.rewind():重复读数据,position归0

    6.clear():清空缓冲区,但是缓冲区的数据还存在,处于"被遗忘"的状态

    7.mark():标记

    8.reset():恢复到mark的位置

5.Channel接口

1.主要实现类,列举出3个

1).FileChannel:用于读取、写入、映射和操作文件的通道。

2).DatagramChannel:通过 UDP 读写网络中的数据通道。

3).SocketChannel:通过 TCP 读写网络中的数据。

4).ServerSocketChannel:可以监听新进来的 TCP 连接,对每一个新进来的连接都会创建一个 SocketChannel。

2.特点是什么

1、 双向:既可以从通道中读取数据,又可以写数据到通道。但流的读写通常是单向的
2 、异步读写:通道可以异步地读写
3 、数据通过 Buffer 读写:通道中的数据总是要先读到一个 Buffer,或者总是要从一个Buffer 中写入

6.获取通道有哪3种方式

(1)Java 针对支持通道的类提供了getChannel()方法:

  本地IO:

                (1) FileInputStream

                (2) FileOutputStream

                (3) RandomAccessFile

   网络IO:

                (1) Socket

                (2) ServerSocket

                (3) DatagramSocket

(2)在JDK 1.7以上版本中的 NIO.2 针对各个通道提供了静态方法open() 。

(3)在JDK 1.7以上版本中的 NIO.2 的Files 工具类的 newByteChannel() 。

7.nio实现文件拷贝思路是什么

1.创建输入流和输出流
2.通过输入流得到输入流的通道
3.通过输出流得到输出流的通道
4.用通道的transferTo方法进行数据的传输
 5.关闭通道
 6.关闭输入输出流

8、请问TCP和UDP协议有什么差别?

TCP协议

• TCP是面向连接的协议, 在正式收发数据前, 必须和对方建立可靠的连接, 所以速度会

慢在连接中传输大数据量;

• 通信前必须建立连接, 效率稍低;

• 通过三次握手机制连接, 四次挥手机制断开连接, TCP提供IP环境下的数据可靠传输,

保证数据无差错的、 按照顺序的进行传输;

• TCP使用字节流模式发送数据;

• TCP适用对可靠性要求高的应用环境;

如: 打电话,文件的传送.

UDP协议

• UDP是面向无连接的协议, 不与对方建立连接, 而是直接就发送数据包, 相对速度快;

• 因为不需要建立连接, 所以速度快;

• 因为无连接, UDP的传输是不可靠的, 不保证数据正确, 不保证顺序等, 也可能丢包;

• UDP使用数据报模式;

• 将数据极其源和目的封装为数据包, 不需要建立连接;

• 每个数据包大小限制在64K中;

• UDP适用于一次只传送少量数据、 对可靠性要求不高的应用环境;

如: 人说话、 飞秋、 凌波、 CS等

TCP

UDP

是否连接

面向连接

无连接

传输可靠性

可靠的

不可靠的

应用场景

传输少量数据

大量数据

速度

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/879998.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号