java.net.SocketOption 是與套接字連接的套接字選項,因為通道包的集合是 java.nio.channels.NetworkChannel,該接口定義了 setOption 以及 getOption 方法來設置和查詢通道在其套接字選項中。
--> java.net Package --> SocketOption Class
這個java.net.SocketOption類允許end-user生成socketOptions對象,這些對象在調用所有基本套接字操作時很有用,我們可以執行網絡操作,例如發送、讀取數據和傳輸、關閉連接,以及每個SocketOption對象是使用 java.net.SocketOption 類創建的,該類已完美調用一個遠程主機並連接到另一級主機,因此,我們不會為其生成新對象。
用法:從java.net包導入SocketOption類
import java.net.SocketOption;
SocketOption 類正在調用流 SocketOption 並連接到簡化的端口號和端口地址,因為此 SocketOption 類用於生成套接字並連接到可訪問遠程端口上的類似遠程地址在 javax.net 中使用。
方法 | 執行的操作 |
---|---|
name() | 返回 SocketOption 的名稱。 |
type() | 返回套接字選項值的類型。 |
接口的使用 - java.net.SocketOption 類
U 的套餐硒SocketOption 類
包 | 說明 |
---|---|
java.net | 這將包含用於調用網絡應用程序的類。 |
com.sun.nio.sctp | 用於調用流控製傳輸協議的 Java API |
java.nio.channels | 這定義了通道以及與創建執行 I/O 操作的通道組的連接,例如文件和套接字,並定義了選擇器和多路複用的非阻塞 I/O 操作。 |
jdk.net | 此 jdk.net 具有平台指定的套接字選項,類似於 java.net 和 java.nio.channels socketOption 類 |
java.net 包的 SocketOption 類的用途
修飾符和類型 | 場地 | 說明 |
---|---|---|
靜態最終 SocketOption<NetworkInterface> | StandardSocketOptions.IP_MULTICAST_IF | 該互聯網協議 (IP) 的網絡接口位於多播數據報中 |
靜態最終 SocketOption<Boolean> | StandardSocketOptions.IP_MULTICAST_LOOP | 互聯網協議 (IP) 的環回位於多播數據報中 |
靜態最終 SocketOption<Integer> | StandardSocketOptions.IP_MULTICAST_TTL | SocketOption<Integer> 中的 time-to-live 用於 Internet 協議 (IP) 也在多播數據報中 |
靜態最終 SocketOption<Integer> | StandardSocketOptions.IP_TOS | Internet 協議 (IP) 標頭內 SocketOption<Integer> (ToS) 八位字節中的服務類型 |
靜態最終 SocketOption<Boolean> | StandardSocketOptions.SO_BROADCAST | 授予廣播數據報傳輸許可 |
靜態最終 SocketOption<Boolean> | StandardSocketOptions.SO_KEEPALIVE | 這將使連接始終保持活動狀態 |
靜態最終 SocketOption<Integer> | StandardSocketOptions.SO_LINGER | 如果數據存儲在其中,它將在關閉時徘徊 |
靜態最終 SocketOption<Integer> | StandardSocketOptions.SO_RCVBUF | 這將根據其套接字的大小接收一個緩衝區 |
靜態最終 SocketOption<Boolean> | StandardSocketOptions.SO_REUSEADDR | 這是一個可重用的地址 |
靜態最終 SocketOption<Boolean> | StandardSocketOptions.SO_REUSEPORT | 它是一個可重複使用的端口 |
靜態最終 SocketOption<Integer> | StandardSocketOptions.SO_SNDBUF | 按套接字大小發送緩衝區 |
靜態最終 SocketOption<Boolean> | StandardSocketOptions.TCP_NODELAY | 它將終止 Nagle 算法 |
java.nio.channels 中 SocketOption 的使用
java.nio.channels 中的方法在 SocketOption 類型的參數內返回類型
修飾符和類型 | 方法及說明 |
---|---|
設置<SocketOption<?>> | 返回具有其修飾符類型通道支持的選項的套接字集 |
java.nio.channels 中的方法,其參數類型為 SocketOption
修飾符和類型 | 方法及說明 |
---|---|
<T> T |
NetworkChannel.getOption(SocketOption<T> 名稱) 拋出SocketOption的值 |
摘要<T>DatagramChannel | DatagramChannel.setOption(SocketOption<T> 名稱, T 值) |
摘要<T>SocketChannel | SocketChannel.setOption(SocketOption<T> 名稱, T 值) |
摘要<T>AsynchronousServerSocketChannel | AsynchronousServerSocketChannel.setOption(SocketOption<T> 名稱, T 值) |
摘要<T>ServerSocketChannel | ServerSocketChannel.setOption(SocketOption<T> 名稱, T 值) |
<T>NetworkChannel |
NetworkChannel.setOption(SocketOption<T> 名稱, T 值) 這將設置SocketOption的值 |
摘要<T>AsynchronousSocketChannel | AsynchronousSocketChannel.setOption(SocketOption<T> 名稱, T 值) |
實現:SocketOption 類演示的 Java 示例
A. 對於服務器端
Java
// Java Program to Illustrate SocketOption Class
// Importing required classes
import java.io.*;
import java.net.*;
import java.net.SocketOption *;
// Class
public class MyServers {
// Main driver method
public static void main(String[] args)
{
// Try block to check for exceptions
try {
// Creating object of class inside main() method
ServerSocket aa = new ServerSocket(6666);
// Setting up an connection
SocketOption sock = aa.accept();
// Initializing an input stream
DataInputStream disc
= new DataInputStream(s.getInputStream());
String str = (String)disc.readUTF();
System.out.println("message= " + str);
// Closing the socket
// using close() method
ss.close();
}
// Catch block to handle exceptions at runtime
catch (Exception c) {
// Display exception along with line number
System.out.println(c);
}
}
}
輸出:在客戶端上
B. 對於客戶端
Java
// Java Program to Illustrate SocketOption Class
// Importing required classes
import java.io.*;
import java.net.*;
import java.net.SocketOption *;
// Class
public class MyClients {
// Main driver method
public static void main(String[] args)
{
// Try block to check for exceptions
try {
// Initializing the SocketOptions
SocketOption soc
= new SocketOption("localhost", 6666);
DataOutputStream d = new DataOutputStream(
soc.getOutputStream());
// Display message only
d.writeUTF("Hello GFG Readers!");
d.flush();
// closing that enabled DataOutputStream
d.close();
// Closing the sockets
soc.close();
}
// Invoking an Exception in running time
// Catch block to handle exceptions
catch (Exception e) {
// Display message only
System.out.println(e);
}
}
}
輸出:在服務器上
相關用法
- Java java.net.SocketException用法及代碼示例
- Java java.net.SocketImplFactory用法及代碼示例
- Java java.net.Socket用法及代碼示例
- Java java.net.SecureCacheResponse用法及代碼示例
- Java java.net.ServerSocket用法及代碼示例
- Java java.net.Proxy用法及代碼示例
- Java java.net.ProxySelector用法及代碼示例
- Java java.net.ProtocolFamily用法及代碼示例
- Java java.net.CookiePolicy用法及代碼示例
- Java java.net.CacheResponse用法及代碼示例
- Java java.net.ResponseCache用法及代碼示例
- Java java.net.URLPermission用法及代碼示例
- Java java.net.NetPermission用法及代碼示例
- Java java.net.CacheRequest用法及代碼示例
- Java java.net.FileNameMap用法及代碼示例
- Java java.net.CookieStore用法及代碼示例
- Java java.net.PasswordAuthentication用法及代碼示例
- Java java.net.CookieHandler用法及代碼示例
- Java java.net.CookieManager用法及代碼示例
- Java java.net.BindException用法及代碼示例
- Java java.net.URLConnection用法及代碼示例
- Java java.net.InetAddress用法及代碼示例
- Java java.nio.ByteBuffer用法及代碼示例
- Java java.nio.IntBuffer用法及代碼示例
- Java java.nio.file.FileStore用法及代碼示例
注:本文由純淨天空篩選整理自khurpaderushi143大神的英文原創作品 java.net.SocketOption Class in Java。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。