Socket communication in Java enables communication between two endpoints over a network. There are two main types of sockets: TCP sockets and UDP sockets. Let's explain both types with examples: TCP Socket Communication: 1. **Server Side**: - The server creates a `ServerSocket` object to listen for incoming connections on a specific port. - When a client connects, the server accepts the connection and creates a `Socket` object to communicate with the client. - The server reads from and writes to the socket's input and output streams to communicate with the client. import java.io.*; import java.net.*; public class TCPServer { public static void main(String[] args) throws IOException { ServerSocket serverSocket = new ServerSocket(12345); System.out.println("Server started. Waiting for client..."); Socket clientSocket = serverSocket.accept(); System.out.println("Client connected."); BufferedReader in = new Bu
The `try` block in Java is used to enclose the code that may throw an exception. It is followed by one or more `catch` blocks and an optional `finally` block. The `try` block allows you to handle exceptions gracefully by providing a mechanism to catch and handle any exceptions that occur during the execution of the enclosed code. Syntax: try { // Code that may throw an exception } catch (ExceptionType1 ex1) { // Code to handle ExceptionType1 } catch (ExceptionType2 ex2) { // Code to handle ExceptionType2 } finally { // Cleanup code (optional) } Explanation: - The `try` block encloses the code that you want to monitor for exceptions. - If an exception occurs within the `try` block, the control is transferred to the appropriate `catch` block that matches the type of the thrown exception. - You can have multiple `catch` blocks to handle different types of exceptions. - The `finally` block, if present, is executed regardless of whether an exception occurred or not. It is co