Course Content
Advanced Java 2077
Advanced Java 2077
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:
Main
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:
Main
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.
Thanks for your feedback!