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[]){ Socket s=null; ServerSocket ss2=null; System.out.println("Server Listening......"); try{ ss2 = new ServerSocket(4445); // can also use static final PORT_NUM , when defined } catch(IOException e){ e.printStackTrace(); System.out.println("Server error"); } while(true){ try{ s= ss2.accept(); System.out.println("connection Established"); ServerThread st=new ServerThread(s); st.start(); } catch(Exception e){ e.printStackTrace(); System.out.println("Connection Error"); } } } } class ServerThread extends Thread{ String line=null; BufferedReader is = null; PrintWriter os=null; Socket s=null; public ServerThread(Socket s){ this.s=s; } public void run() { try{ is= new BufferedReader(new InputStreamReader(s.getInputStream())); os=new PrintWriter(s.getOutputStream()); }catch(IOException e){ System.out.println("IO error in server thread"); } try { line=is.readLine(); while(line.compareTo("QUIT")!=0){ os.println(line); os.flush(); System.out.println("Response to Client : "+line); line=is.readLine(); } } catch (IOException e) { line=this.getName(); //reused String line for getting thread name System.out.println("IO Error/ Client "+line+" terminated abruptly"); } catch(NullPointerException e){ line=this.getName(); //reused String line for getting thread name System.out.println("Client "+line+" Closed"); } finally{ try{ System.out.println("Connection Closing.."); if (is!=null){ is.close(); System.out.println(" Socket Input Stream Closed"); } if(os!=null){ os.close(); System.out.println("Socket Out Closed"); } if (s!=null){ s.close(); System.out.println("Socket Closed"); } } catch(IOException ie){ System.out.println("Socket Close Error"); } }//end finally } }
import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.io.PrintWriter; import java.net.InetAddress; import java.net.Socket; public class Client { public static void main(String args[]) throws IOException{ InetAddress address=InetAddress.getLocalHost(); Socket s1=null; BufferedReader serverMsg=null; String line=null; BufferedReader br=null; PrintWriter os=null; try { s1=new Socket(address, 4445); br= new BufferedReader(new InputStreamReader(System.in)); serverMsg=new BufferedReader(new InputStreamReader(s1.getInputStream())); os= new PrintWriter(s1.getOutputStream()); } catch (IOException e){ e.printStackTrace(); System.err.print("IO Exception"); } System.out.println("Client Address : "+address); System.out.println("Enter Data to echo Server ( Enter QUIT to end):"); String response=null; try{ line=br.readLine(); while(line.compareTo("QUIT")!=0){ os.println(line); os.flush(); response=serverMsg.readLine(); System.out.println("Server Response : "+response); line=br.readLine(); } } catch(IOException e){ e.printStackTrace(); System.out.println("Socket read Error"); } finally{ serverMsg.close();os.close();br.close();s1.close(); System.out.println("Connection Closed"); } } }
Experts Exchange always has the answer, or at the least points me in the correct direction! It is like having another employee that is extremely experienced.
When asked, what has been your best career decision?
Deciding to stick with EE.
Being involved with EE helped me to grow personally and professionally.
Connect with Certified Experts to gain insight and support on specific technology challenges including:
We've partnered with two important charities to provide clean water and computer science education to those who need it most. READ MORE