import java.net.Socket; import java.net.*; import java.io.*; public class Client { Socket socket; BufferedReader br; PrintWriter out; public Client(){ try{ System.out.println("Sending request to server"); socket=new Socket("127.0.0.1",7777); System.out.println("Connection done!!"); br = new BufferedReader(new InputStreamReader(socket.getInputStream())); out = new PrintWriter(socket.getOutputStream()); startReading(); startWriting(); } catch(Exception e){} } public void startReading(){ Runnable r1=()->{ System.out.println("reader started..."); try{ while(true){ String msg = br.readLine(); if(msg.equals("EXIT")){System.out.println("Server terminated the chatting!!"); socket.close(); break;} System.out.println("Server : "+msg); } }catch(Exception e){System.out.print("----Connection is Closed----");} }; new Thread(r1).start(); } public void startWriting(){ Runnable r2=()->{ System.out.println("Writer started..."); try{ while(!socket.isClosed()){ BufferedReader br1 = new BufferedReader(new InputStreamReader(System.in)); String content=br1.readLine(); out.println(content); out.flush(); if(content.equals("EXIT")){ socket.close(); break; } System.out.print("----Connection is Closed----"); } }catch(Exception e){}; }; new Thread(r2).start(); } public static void main(String[] args){ System.out.println("this is client..."); new Client(); } }