當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


Java java.net.SocketOption用法及代碼示例


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);
        }
    }
}

輸出:在服務器上



相關用法


注:本文由純淨天空篩選整理自khurpaderushi143大神的英文原創作品 java.net.SocketOption Class in Java。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。