In this Java network programming tutorial, you will learn how to develop a simple socket server program.
Server.java
package simple_tcp;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.net.ServerSocket;
import java.net.Socket;
public class Server {
public Server() throws Exception {
ServerSocket server_socket = new ServerSocket(2020); //opening a new port
System.out.println("Port 2020 is open.");
Socket socket = server_socket.accept();
System.out.println("Client " + socket.getInetAddress() + " has connected.");
// I/O buffers:
BufferedReader in_socket = new BufferedReader(new InputStreamReader (socket.getInputStream()));
PrintWriter out_socket = new PrintWriter(new OutputStreamWriter (socket.getOutputStream()), true);
out_socket.println("Welcome!"); // send "Welcome" to the Client
String message = in_socket.readLine();
System.out.println("Client says: " + message); // display Client's message in the console
socket.close();
System.out.println("Socket is closed.");
}
public static void main(String[] args) {
try {
new Server();
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}
}
}
Client.java
package simple_tcp;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.net.Socket;
public class Client {
public Client() throws Exception {
Socket socket = new Socket("localhost",2020);
System.out.println("Successful connection to the server.");
// I/O streams
BufferedReader in_socket = new BufferedReader (new InputStreamReader (socket.getInputStream()));
PrintWriter out_socket = new PrintWriter (new OutputStreamWriter (socket.getOutputStream()), true);
String message = in_socket.readLine();
System.out.println("Server says: " + message);
out_socket.println("Thanks!");
socket.close();
System.out.println("Socket closed.");
}
public static void main(String[] args) {
try {
new Client();
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}
}
}
Output :
//Server
Port 2020 is open.
Client /127.0.0.1 has connected.
Client says: Thanks!
Socket is closed.
//Client
Successful connection to the server.
Server says: Welcome!
Socket closed.