12.CLIENT/SERVER SOCKET COMMUNICATION

  //ServerPrg.Java import java.net.*; import java.io.*; public class ServerPrg { private static Socket socket; public static void main(String[] args) { try { int port = 25000; ServerSocket serverSocket = new ServerSocket(port); System.out.println("Server Started and listening to the port 25000"); //Server is running always. This is done using this while(true) loop while(true) { //Reading the message from the client socket = serverSocket.accept(); InputStream is = socket.getInputStream(); InputStreamReader isr = new InputStreamReader(is); BufferedReader br = new BufferedReader(isr); String number = br.readLine(); System.out.println("Message received from client is "+number); //Multiplying the number by 2 and forming the return message String returnMessage; try { int n = Integer.parseInt(number); int result = n*2; returnMessage = String.valueOf(result) + "\n"; } catch(NumberFormatException e) { //Input was not a number. Sending proper message back to client. returnMessage = "Please send a proper number\n"; } //Sending the response back to the client. OutputStream os = socket.getOutputStream(); OutputStreamWriter osw = new OutputStreamWriter(os); BufferedWriter bw = new BufferedWriter(osw); bw.write(returnMessage); System.out.println("Message sent to the client is "+returnMessage); bw.flush(); } } catch (Exception e) { e.printStackTrace(); } finally { try { socket.close(); } catch(Exception e){} } } } //ClientPrg.Java import java.net.*; import java.io.*; public class ClientPrg { private static Socket socket; public static void main(String args[]) { try { String host = "localhost"; int port = 25000; InetAddress address = InetAddress.getByName(host); socket = new Socket(address, port); //Send the message to the server OutputStream os = socket.getOutputStream(); OutputStreamWriter osw = new OutputStreamWriter(os); BufferedWriter bw = new BufferedWriter(osw); String number = "2"; String sendMessage = number + "\n"; bw.write(sendMessage); bw.flush(); System.out.println("Message sent to the server : "+sendMessage); //Get the return message from the server InputStream is = socket.getInputStream(); InputStreamReader isr = new InputStreamReader(is); BufferedReader br = new BufferedReader(isr); String message = br.readLine(); System.out.println("Message received from the server : " +message); } catch (Exception exception) { exception.printStackTrace(); } finally { try { socket.close(); } catch(Exception e) { e.printStackTrace(); } } } } Output: Server Server Started and listening to the port 25000 Message received from client is 2 Message sent to the client is 4 Client Message sent to the server : 2 Message received from the server: 4

Comments