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