Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Networking and Sockets in Java | Input-Output (I-O) and Networking
Advanced Java 2077
course content

Course Content

Advanced Java 2077

Advanced Java 2077

1. Data Structures
2. Sorting and Searching
3. Concurrent Programming
4. Input-Output (I-O) and Networking
5. Java GUI Development

Networking and Sockets in Java

Networking is the process of connecting two or more devices over a network to share resources and communicate with each other. In Java, the networking API provides classes and interfaces for working with sockets, which are endpoints of a two-way communication link between two programs running over a network.

Socket Programming

Socket programming is the process of creating and using sockets to establish connections between programs running on different devices over a network. In Java, there are two types of sockets: client sockets and server sockets.

Client sockets are used to establish connections to remote servers, while server sockets are used to listen for incoming connections from remote clients.

Here's an example of creating a client socket in Java:

java

Main

copy
12345678
try { Socket socket = new Socket("localhost", 8080); OutputStream out = socket.getOutputStream(); out.write("Hello, server!".getBytes()); socket.close(); } catch (IOException e) { e.printStackTrace(); }

In this code, we use a Socket to establish a connection to a server running on the local machine at port 8080. The getOutputStream() method of the Socket class is used to get an OutputStream object that can be used to write data to the socket. The write() method is used to write the text "Hello, server!" to the socket, and the close() method is used to close the socket when we're done.

Here's an example of creating a server socket in Java:

java

Main

copy
12345678910111213
try { ServerSocket serverSocket = new ServerSocket(8080); Socket socket = serverSocket.accept(); InputStream in = socket.getInputStream(); byte[] buffer = new byte[1024]; int length = in.read(buffer); String message = new String(buffer, 0, length); System.out.println(message); socket.close(); serverSocket.close(); } catch (IOException e) { e.printStackTrace(); }

In this code, we use a ServerSocket to listen for incoming connections from remote clients on port 8080. The accept() method of the ServerSocket class is used to accept an incoming connection and return a Socket object that can be used to communicate with the client. The getInputStream() method of the Socket class is used to get an InputStream object that can be used to read data from the socket. The read() method is used to read the data from the socket into a byte array, and the resulting string is printed to the console.

Java Networking API

In addition to the Socket and ServerSocket classes, the Java networking API provides several other classes and interfaces for working with sockets and establishing connections between programs running on different devices over a network. Some of the key classes and interfaces include the following:

  • InetAddress: Represents an Internet Protocol (IP) address.
  • URL: Represents a Uniform Resource Locator (URL) that identifies a resource on the internet.
  • DatagramPacket: Represents a packet of data that can be sent over a network using the User Datagram Protocol (UDP).
  • DatagramSocket: Represents a socket that can be used to send and receive DatagramPacket objects using UDP.
1. Which of the following is true about a client socket in Java?
2. Which of the following classes in the Java networking API is used to represent an IP address?

Which of the following is true about a client socket in Java?

Select the correct answer

Which of the following classes in the Java networking API is used to represent an IP address?

Select the correct answer

Everything was clear?

Section 4. Chapter 3
We're sorry to hear that something went wrong. What happened?
some-alt