
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)