最近socket让我不能理解,上一节路由课,看了网络编程的视频,深入思考了一下下,给自己一个想通的理由哈哈哈
总结一下IO有关的类树
java.io
InputStream字节输入流
----FileInputStream文件字节输入流
----FilerInputStream过滤字节输入流
--------BufferedInputStream缓冲字节输入流
----ObjectInputStream反序列化
OutputSteam字节输出流
----FileOutputStream文件字节输出流
----FilerOutputStream过滤字节输出流
--------BufferedOutputStream缓冲字节输入流
----ObjectOutputStream序列化
java.net
Socket套接字
ServerSocket服务器套接字(没有发送和接收功能)
java.util
Scanner扫描器
我把流和套接字都理解成管道,输入和输出实际上就是数据在管道中的流通,多个流或者套接字与流的结合就是不同管道的连接。
我理解的流是单向的,本地的,不需要另一方同意,只要创建流就可直接连接,例如创建文件输出流,不需要文件的同意哈哈。
套接字是双向的,网络的,需要对方回应才能确定是否连接,所以在客户端和服务器端都要创建套接字,对应上才可连接且可双向通信。
在客户端和服务器进行通信或传文件,除了创建套接字还要有流,这是建立网络连接之后在本地进行单向操作,也就是多个管道相接达到把网络中的数据或文件保存到本地的目的。
网友评论