Java 教程
- Java - 首页
- Java - 概述
- Java - 历史
- Java - 特性
- Java 与 C++
- JVM - Java 虚拟机
- Java - JDK 与 JRE 与 JVM
- Java - Hello World 程序
- Java - 环境设置
- Java - 基本语法
- Java - 变量类型
- Java - 数据类型
- Java - 类型转换
- Java - Unicode 系统
- Java - 基本运算符
- Java - 注释
- Java - 用户输入
- Java - 日期与时间
Java 控制语句
- Java - 循环控制
- Java - 决策制定
- Java - if-else
- Java - switch
- Java - for 循环
- Java - for-each 循环
- Java - while 循环
- Java - do-while 循环
- Java - break
- Java - continue
面向对象编程
- Java - 面向对象编程概念
- Java - 对象与类
- Java - 类属性
- Java - 类方法
- Java - 方法
- Java - 变量作用域
- Java - 构造函数
- Java - 访问修饰符
- Java - 继承
- Java - 聚合
- Java - 多态
- Java - 方法重写
- Java - 方法重载
- Java - 动态绑定
- Java - 静态绑定
- Java - 实例初始化块
- Java - 抽象
- Java - 封装
- Java - 接口
- Java - 包
- Java - 内部类
- Java - 静态类
- Java - 匿名类
- Java - 单例类
- Java - 包装类
- Java - 枚举
- Java - 枚举构造函数
- Java - 枚举字符串
Java 内置类
Java 文件处理
Java 错误与异常
- Java - 异常
- Java - try-catch 块
- Java - try-with-resources
- Java - 多重 catch 块
- Java - 嵌套 try 块
- Java - finally 块
- Java - throw 异常
- Java - 异常传播
- Java - 内置异常
- Java - 自定义异常
Java 多线程
- Java - 多线程
- Java - 线程生命周期
- Java - 创建线程
- Java - 启动线程
- Java - 线程连接
- Java - 线程命名
- Java - 线程调度器
- Java - 线程池
- Java - 主线程
- Java - 线程优先级
- Java - 守护线程
- Java - 线程组
- Java - 关闭钩子
Java 同步
Java 网络编程
- Java - 网络编程
- Java - Socket 编程
- Java - URL 处理
- Java - URL 类
- Java - URLConnection 类
- Java - HttpURLConnection 类
- Java - Socket 类
- Java - 泛型
Java 集合
Java 接口
Java 数据结构
Java 集合算法
高级 Java
- Java - 命令行参数
- Java - Lambda 表达式
- Java - 发送邮件
- Java - Applet 基础
- Java - Javadoc 注释
- Java - 自动装箱和拆箱
- Java - 文件不匹配方法
- Java - REPL (JShell)
- Java - 多版本 Jar 文件
- Java - 私有接口方法
- Java - 内部类菱形运算符
- Java - 多分辨率图像 API
- Java - 集合工厂方法
- Java - 模块系统
- Java - Nashorn JavaScript
- Java - Optional 类
- Java - 方法引用
- Java - 函数式接口
- Java - 默认方法
- Java - Base64 编码解码
- Java - switch 表达式
- Java - Teeing 收集器
- Java - 微基准测试
- Java - 文本块
- Java - 动态 CDS 存档
- Java - Z 垃圾收集器 (ZGC)
- Java - 空指针异常
- Java - 打包工具
- Java - 密封类
- Java - 记录类
- Java - 隐藏类
- Java - 模式匹配
- Java - 简洁数字格式化
- Java - 垃圾回收
- Java - JIT 编译器
Java 杂项
- Java - 递归
- Java - 正则表达式
- Java - 序列化
- Java - 字符串
- Java - Process API 改进
- Java - Stream API 改进
- Java - 增强的 @Deprecated 注解
- Java - CompletableFuture API 改进
- Java - 流
- Java - 日期时间 API
- Java 8 - 新特性
- Java 9 - 新特性
- Java 10 - 新特性
- Java 11 - 新特性
- Java 12 - 新特性
- Java 13 - 新特性
- Java 14 - 新特性
- Java 15 - 新特性
- Java 16 - 新特性
Java API 与框架
Java 类引用
- Java - Scanner
- Java - 数组
- Java - 字符串
- Java - Date
- Java - ArrayList
- Java - Vector
- Java - Stack
- Java - PriorityQueue
- Java - LinkedList
- Java - ArrayDeque
- Java - HashMap
- Java - LinkedHashMap
- Java - WeakHashMap
- Java - EnumMap
- Java - TreeMap
- Java - IdentityHashMap
- Java - HashSet
- Java - EnumSet
- Java - LinkedHashSet
- Java - TreeSet
- Java - BitSet
- Java - Dictionary
- Java - Hashtable
- Java - Properties
- Java - Collection
- Java - Array
Java 有用资源
Java - Socket isInputShutdown() 方法
描述
Java Socket isInputShutdown() 方法返回套接字连接的读半部分是否已关闭。
声明
以下是 java.net.Socket.isInputShutdown() 方法的声明。
public boolean isInputShutdown()
参数
无
返回值
如果套接字的输入已关闭,则返回 true。
异常
无
示例 1
以下示例演示了如何使用 Java Socket isInputShutdown() 方法来获取套接字连接的读半部分是否已关闭的状态。首先,我们使用无参数构造函数创建了一个 Socket 实例。然后,为了创建一个 SocketAddress 对象,我们初始化了一个 localhost 地址的 InetAddress 实例。使用 InetSocketAddress 对象,我们创建了一个 SocketAddress 对象,然后使用 bind() 方法将地址绑定到套接字。完成后,我们使用 isInputShutdown() 方法打印状态、本地端口和 InetAddress,如所示。最后,我们使用 close() 方法关闭了套接字。
package com.tutorialspoint; import java.io.IOException; import java.net.InetAddress; import java.net.InetSocketAddress; import java.net.Socket; import java.net.SocketAddress; public class SocketDemo { public static void main(String[] args) throws IOException { Socket socket = new Socket(); InetAddress inetAddress=InetAddress.getByName("localhost"); SocketAddress socketAddress=new InetSocketAddress(inetAddress, 6066); socket.bind(socketAddress); System.out.println("Is Input Stream shutdown: "+socket.isInputShutdown()); System.out.println("Port number: "+socket.getLocalPort()); System.out.println("Inet Address: "+socket.getInetAddress()); socket.close(); } }
输出
让我们编译并运行上面的程序,这将产生以下结果:
Is Input Stream shutdown: false Port number: 6066 Inet Address: null
示例 2
以下示例演示了如何使用 Java Socket isInputShutdown() 方法来获取套接字连接的读半部分是否已关闭的状态。首先,我们使用无参数构造函数创建了一个 Socket 实例。然后,为了创建一个 SocketAddress 对象,我们初始化了一个 localhost 地址的 InetAddress 实例。使用 InetSocketAddress 对象,我们创建了一个 SocketAddress 对象,然后使用 bind() 方法将地址绑定到套接字。使用 connect() 方法,我们建立与服务器的连接。现在,我们使用 isInputShutdown() 方法打印状态。然后,我们使用 shutdownInput() 方法关闭输入流并使用 isInputShutdown() 方法打印状态。最后,我们使用 close() 方法关闭了套接字。
package com.tutorialspoint; import java.io.IOException; import java.net.InetAddress; import java.net.InetSocketAddress; import java.net.Socket; import java.net.SocketAddress; public class SocketDemo { public static void main(String[] args) throws IOException { Socket socket = new Socket(); InetAddress inetAddress=InetAddress.getByName("localhost"); SocketAddress socketAddress=new InetSocketAddress(inetAddress, 6067); socket.bind(socketAddress); socket.connect(socketAddress); System.out.println("Is Input Stream shutdown: "+socket.isInputShutdown()); socket.shutdownInput(); System.out.println("Is Input Stream shutdown: "+socket.isInputShutdown()); socket.close(); } }
输出
让我们编译并运行上面的程序,这将产生以下结果:
Is Input Stream shutdown: false Is Input Stream shutdown: true
示例 3
以下示例演示了如何使用 Java Socket isInputShutdown() 方法来获取套接字实例的 TCP_NODELAY 标志的状态,如果套接字已关闭。首先,我们使用无参数构造函数创建了一个 Socket 实例。然后,为了创建一个 SocketAddress 对象,我们初始化了一个 localhost 地址的 InetAddress 实例。使用 InetSocketAddress 对象,我们创建了一个 SocketAddress 对象,然后使用 bind() 方法将地址绑定到套接字。使用 connect() 方法,我们建立与服务器的连接。使用 socket.close(),我们关闭套接字。现在,我们使用 isInputShutdown() 方法打印状态。然后,我们使用 shutdownInput() 方法关闭输入流并使用 isInputShutdown() 方法打印状态。最后,我们使用 close() 方法关闭了套接字。
package com.tutorialspoint; import java.io.IOException; import java.net.InetAddress; import java.net.InetSocketAddress; import java.net.Socket; import java.net.SocketAddress; public class SocketDemo { public static void main(String[] args) throws IOException { Socket socket = new Socket(); InetAddress inetAddress=InetAddress.getByName("localhost"); SocketAddress socketAddress=new InetSocketAddress(inetAddress, 6067); socket.bind(socketAddress); socket.connect(socketAddress); socket.close(); System.out.println("Is Input Stream shutdown: "+socket.isInputShutdown()); socket.shutdownInput(); System.out.println("Is Input Stream shutdown: "+socket.isInputShutdown()); socket.close(); } }
输出
让我们编译并运行上面的程序,这将产生以下结果:
Is Input Stream shutdown: false Exception in thread "main" java.net.SocketException: Socket is closed at java.base/java.net.Socket.shutdownInput(Socket.java:1538) at com.tutorialspoint.SocketDemo.main(SocketDemo.java:18)