当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。