Open In App

java.net.SocketOption Class in Java

Last Updated : 24 Mar, 2022
Improve
Improve
Like Article
Like
Save
Share
Report

The java.net.SocketOption is a socket option that is connected with a socket, as the set of channels packages is java.nio.channels.NetworkChannel that this interface has defined the setOption as well as the getOption methods to set and query’s the channels within its Socket Options.

--> java.net Package
    --> SocketOption Class   

This java.net.SocketOption class allows end-user to generate the socketOptions objects that are useful in invoking all fundamentals socket operations We can do networking operations such as sending, reading data and transferring, closing to connections, And Each of these SocketOption objects is created using with java.net.SocketOption class has invoked perfectly with one remote host and for connecting to another level host, therefore, we won’t generate the new object for it.

Syntax: Importing SocketOption class from java.net package

import java.net.SocketOption;

SocketOption class is invoking a stream SocketOption and which is connected to the simplified port number and port addressed as this SocketOption class is used for the generation of the socket and is connecting to the similar remote address on the accessible remote ports that are in javax.net to use.

Method Action Performed
name() Returns the name of the SocketOption to it.
type() Returns the type of the socket option value to it.

Uses of Interfaces- java.net.SocketOption Class

Packages that Use the SocketOption Class

Package Description
java.net              This will feature the classes for invoking networking applications.
com.sun.nio.sctp                A Java API for invoking the Streaming Control Transporting Protocols
java.nio.channels                            This is defining the channels as well as connections to sets of channels that create performing I/O operations, like as files and sockets, and defines selectors and for multiplexed thus non-blocking I/O operations.
jdk.net This jdk.net has Platform specified sockets options similar to the java.net and java.nio.channels socketOption classes

Uses of SocketOption Class Of java.net Package 

Modifier and Type Field Description
static final SocketOption<NetworkInterface>                                        StandardSocketOptions.IP_MULTICAST_IF                                            The networking interface for this Internet Protocol (IP) is in the multicasted datagrams
static final SocketOption<Boolean>                                  StandardSocketOptions.IP_MULTICAST_LOOP Loopbacking of Internet Protocol (IP) is in  multicasted datagrams
static final SocketOption<Integer> StandardSocketOptions.IP_MULTICAST_TTL                                            the time-to-live in SocketOption<Integer> is for the Internet Protocol (IP) is also in multicasted datagrams
static final SocketOption<Integer> StandardSocketOptions.IP_TOS The Type of Services in SocketOption<Integer> (ToS) octeting within Internet Protocol (IP) header
static final SocketOption<Boolean> StandardSocketOptions.SO_BROADCAST Giving permission to transmission of broadcasting datagrams
static final SocketOption<Boolean> StandardSocketOptions.SO_KEEPALIVE this will keeping the connection always alive
static final SocketOption<Integer> StandardSocketOptions.SO_LINGER it will Linger within on close if data is store in it
static final SocketOption<Integer> StandardSocketOptions.SO_RCVBUF this will received a buffer by size of its socket
static final SocketOption<Boolean> StandardSocketOptions.SO_REUSEADDR                        it is a reusable addresses
static final SocketOption<Boolean>                  StandardSocketOptions.SO_REUSEPORT it is a reusable port
static final SocketOption<Integer> StandardSocketOptions.SO_SNDBUF sending a buffer by size of sockets
static final SocketOption<Boolean> StandardSocketOptions.TCP_NODELAY it will terminating the Nagle algorithm

Uses of SocketOption within the java.nio.channels

Methods in java.nio.channels has returning types within the arguments of type with SocketOption

Modifier and Type Method and Description
Set<SocketOption<?>> Returning the sets of the socket having options are supported by its modifier type channels

Methods in java.nio.channels within the parameters of type with SocketOption 

Modifier and Type  Method and Description
<T> T

NetworkChannel.getOption(SocketOption<T> name)

throwing the value of SocketOption

abstract <T> DatagramChannel DatagramChannel.setOption(SocketOption<T> name, T value) 
abstract <T> SocketChannel SocketChannel.setOption(SocketOption<T> name, T value) 
abstract <T> AsynchronousServerSocketChannel AsynchronousServerSocketChannel.setOption(SocketOption<T> name, T value)
abstract <T> ServerSocketChannel ServerSocketChannel.setOption(SocketOption<T> name, T value) 
<T> NetworkChannel

NetworkChannel.setOption(SocketOption<T> name, T value)

this will setting up the values of SocketOption

abstract <T> AsynchronousSocketChannel AsynchronousSocketChannel.setOption(SocketOption<T> name, T value) 

Implementation: Java Examples for a SocketOption class Demonstration

A. For the Server-Side

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


Output: On the Client

B. For the Client-Side

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


Output: On the server



Like Article
Suggest improvement
Previous
Next
Share your thoughts in the comments

Similar Reads