网络通信中基于套接字输入流和输出流的创建
来源:互联网 发布:广东十一选五遗漏数据 编辑:程序博客网 时间:2024/09/21 08:16
基本方法
要实现套接字的网络通信,需要分四个步骤完成:
(1)创建套接字Socket,连接成功后形成网络连接通道;
(2)由套接字对象Socket调用getInputStream()或getOutputStream()方法,分别返回具有套接字通信的基础输入流InputStream和输出流OutputStream对象作为参数,完成绑定套接字通信的输入流和输出流对象的创建。
(3)用输入和输出流对象调用其对应方法的操作方式实现网络通信;
(4)网络通信结束,需要关闭输入流和输出流对象,尤其要关闭套接字对象。
具体实现方法
(1)基于套接字的字节输入流dis和输出流dos的创建
dis调用readUTF()方法接收数据;
dos调用writeUTF()方法发送数据;
Socket socket=new Socket("127.0.0.1", 8888); try { DataInputStream dis=new DataInputStream(socket.getInputStream()); DataOutputStream dos=new DataOutputStream(socket.getOutputStream()); …… dos.writeUTF("Cilent Test"); dos.flush(); dos.close(); } catch (Exception e) { // TODO: handle exception }finally{ socket.close();}
(2)基于套接字具有缓冲的字节输入流dinB和输出流dosB的创建
DataInputStream dinB=new DataInputStream(new BufferedInputStream(socket.getInputStream()));DataOutputStream dosB=new DataOutputStream(new BufferedOutputStream(socket.getOutputStream()));
(3)基于套接字并具有缓冲的字符读取器br和写入器bw或文本输出流pw的创建
如果以字符为单位的读取器和写入器来实现网络通信,必须将套接字的字节流用转换器转换为字符流输入,或将字符流装换为套接字的字节流输出。
转换器实现如下:
new InputStreamReader(socket.getInputStream()); //字节输入流转换为字符输入流new OutputStreamWriter(socket.getOutputStream()); //字符输出流转换为字节输出流
以下将绑定有套接字的转换器对象作为缓冲字符读取器br和字符写入器bw的构造函数参数,建立br和bw对象,由此可达到字符操作的高效率。
建立br和bw对象代码如下:
BufferedReader br=new BufferedReader(new InputStreamReader(socket.getInputStream()));BufferedWriter bw=new BufferedWriter(new OutputStreamWriter(socket.getOutputStream()));
如果用字符格式化文本输出流PrintWriter代替写入器bw实现字符输出流,其对象pw构造函数的第一个参数为写入对象即可;第二个参数为true,表示数据写到pw进入缓冲区,系统自动刷新输出缓冲区,由此来确保数据送出。
PrintWriter writer=new PrintWriter(socket.getOutputStream(),true);
阅读全文
0 0
- 网络通信中基于套接字输入流和输出流的创建
- 基于TCP通信的套接字Socket
- 输入/输出流 和 文件的创建与删除
- 网络编程中套接字创建过程
- uc笔记10---网络通信,套接字(Socket),基于 TCP 协议的客户机/服务器模型
- 基于套接字的网络聊天系统
- 【网络编程】使用流式套接字实现简单的客户端/服务端通信过程
- Java网络通信套接字
- TCP套接字网络通信
- 套接字与网络通信
- TCP和UDP通信的流程框架----基于Socket套接字
- 模板类中输入流“>>”和输出流“<<”的重载
- java中输入流和输出流
- 基于TCP套接字实现简单的通信
- 基于套接字实现本地进程间的通信
- TCP/IP网络编程 基于Linux编程_1 --套接字中标准I/O的使用
- Linux网络编程--TCP的套接字通信学习笔记
- 进程之间的通信--套接字(网络部分)
- 每天进步一点点——五分钟理解一致性哈希算法(consistent hashing)
- Java 通过先序中序序列生成二叉树
- Java 循环队列的实现
- Java 冒泡排序与快速排序的实现
- Java 线程池的实现
- 网络通信中基于套接字输入流和输出流的创建
- Java TCP通信概念及实例
- JSP/Servlet Web 学习笔记 DayOne
- JSP/Servlet Web 学习笔记 DayTwo
- Java UDP的简单实例以及知识点简述
- Caused by: java.lang.ClassNotFoundException: org.apache.commons.lang3.StringUtils
- golang 中regexp包用法
- 华为编程题---明明的随机数
- 符号含义