1. Server.java
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.ServerSocket;
import java.net.Socket;
public class Server {
public static void main(String[] args) {
BufferedReader br = null;
PrintWriter pw = null;
try {
ServerSocket server = new ServerSocket(2000);
Socket socket = server.accept();
br = new BufferedReader(new InputStreamReader(socket.getInputStream()));
pw = new PrintWriter(socket.getOutputStream(), true);
while(true){
String s = br.readLine();
if(s.trim().equals("exit")){
pw.println("granted");
break;
}
pw.println("Server:\t" + s);
}
server.close();
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
br.close();
pw.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
2. Client.java
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.Socket;
import java.util.Scanner;
public class Client {
public static void main(String[] args) {
BufferedReader br = null;
PrintWriter pw = null;
try {
Socket socket = new Socket("localhost", 2000);
br = new BufferedReader(new InputStreamReader(socket.getInputStream()));
pw = new PrintWriter(socket.getOutputStream(), true);
pw.println("Hello!");
Scanner scan = new Scanner(System.in);
String s;
while(true){
s = null;
while(true){
s = br.readLine();
if(s != null)
break;
}
if(s.trim().endsWith("granted"))
break;
System.out.println(s);
System.out.print("Client:\t");
s = scan.nextLine();
pw.println(s);
}
scan.close();
socket.close();
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
br.close();
pw.close();
} catch (Exception e2) {
}
}
}
}
3. snapshot of output.