I have written a simple Client-Server program in java. when i create a socket like
Socket socket = new Socket("localhost",7000); 
I am able to connect to the server and transfer the data(any console input) to the Server but when i pass localhost Ip(127.0.0.1) in the Socket like
 Socket socket = new Socket("127.0.0.1",7000);
I get the following error Error:
java.net.ConnectException: Connection refused: connect
Why i am getting this.
Here is my server side Code
public class SocketServer {
    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
      new SocketServer();
        // TODO code application logic here
    }
  public   SocketServer(){
       try {
            ServerSocket sSocket = new ServerSocket(7000);
            System.out.println("Server started at: " + new Date());
//Wait for a client to connect
            Socket socket = sSocket.accept();
            //Create the streams
            PrintWriter output = new PrintWriter(socket.getOutputStream(), true);
            BufferedReader input = new BufferedReader(new InputStreamReader(socket.getInputStream()));
            //Tell the client that he/she has connected
            output.println("You have connected at: " + new Date());
            //Loop that runs server functions
            while(true) {
                //This will wait until a line of text has been sent
                String chatInput = input.readLine();
                System.out.println(chatInput);
            }
        } catch(IOException exception) {
            System.out.println("Error: " + exception);
        }
    }
Here is my client side Code
public class ClientSocket {
    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) throws UnknownHostException {
        // TODO code application logic here
        new ClientSocket();
    }
  public ClientSocket() throws UnknownHostException
    {
    //We set up the scanner to receive user input
        Scanner scanner = new Scanner(System.in);
        try {
           //Socket socket = new Socket("localHost",7000);//works Fine
            Socket socket = new Socket("127.0.0.1",7000);//Gives error
            PrintWriter output = new PrintWriter(socket.getOutputStream(), true);
            BufferedReader input = new BufferedReader(new InputStreamReader(socket.getInputStream()));
            //This will wait for the server to send the string to the client saying a connection
            //has been made.
            String inputString = input.readLine();
            System.out.println(inputString);
            //Again, here is the code that will run the client, this will continue looking for 
            //input from the user then it will send that info to the server.
            while(true) {
                //Here we look for input from the user
                String userInput = scanner.nextLine();
                //Now we write it to the server
                output.println(userInput);
            }
        } catch (IOException exception) {
            System.out.println("Error: " + exception);
        }
    }
}
Here is my /etc/hosts file
# Copyright (c) 1993-2009 Microsoft Corp.
#
# This is a sample HOSTS file used by Microsoft TCP/IP for Windows.
#
# This file contains the mappings of IP addresses to host names. Each
# entry should be kept on an individual line. The IP address should
# be placed in the first column followed by the corresponding host name.
# The IP address and the host name should be separated by at least one
# space.
#
# Additionally, comments (such as these) may be inserted on individual
# lines or following the machine name denoted by a '#' symbol.
#
# For example:
#
#      102.54.94.97     rhino.acme.com          # source server
#       38.25.63.10     x.acme.com              # x client host
# localhost name resolution is handled within DNS itself.
#   127.0.0.1       localhost
#   ::1             localhost
127.0.0.1       localhost
127.0.0.1       localhost 
 
     
     
     
    