2015-12-03 140 views
0

我在這裏有一些代碼連接到服務器,我收到錯誤java.net.ConnectException:連接拒絕。拒絕Java TCP套接字連接

我嘗試在命令行上使用ping,我收到了數據包,所以我知道它正在工作。

我也嘗試使用telnet連接到我的IP地址,它給了我同樣的連接拒絕錯誤。我的代碼有問題嗎?我不確定爲什麼我的連接被拒絕。

客戶:

public class InstantMessagingClient 
{ 
    private Socket socket; 

    public InstantMessagingClient(String serverName, int port) 
    { 

     new Thread() { 
      public void run() 
      { 
       try 
       { 
        System.out.println("Connecting to " + serverName + " and port: " + port); 
        //socket.setSoTimeout(10000); 
        socket = new Socket(serverName, port); 
        System.out.println("Client: connected to server at address: " + socket.getLocalAddress() + " and port: " + socket.getPort()); 
       } 
       catch(Exception e) 
       { 
        System.out.println(e.toString()); 
       } 

      } 
     }.start(); 
    } 
} 

服務器:

public class InstantMessagingServer 
{ 
    private int port; 
    private Socket clientSocket; 
    private ServerSocket serverSocket; 

    public InstantMessagingServer(int port) 
    { 
     try 
     { 
      this.port = port; 
      serverSocket = new ServerSocket(port); 
      serverSocket.setSoTimeout(10000); 
      System.out.println("Server: Connected to port"); 
      new Thread() 
      { 
       public void run() 
       { 
        while(true) 
        { 
         try 
         { 
          System.out.println("Server: Waiting for port " + serverSocket.getLocalPort()); 
          System.out.println(serverSocket.getLocalSocketAddress()); 
          clientSocket = serverSocket.accept(); 
          System.out.println("Server: Just connected to " + clientSocket.getRemoteSocketAddress()); 

         } 
         catch(Exception e) 
         { 
          System.out.println(e.toString()); 
          break; 
         } 
        } 
       } 
      }.start(); 
     } 
     catch(Exception e) 
     { 
      System.out.println(e.toString()); 
     } 
    } 

} 

主營:

public void main() 
{ 
InstantMessagingServer server = new InstantMessagingServer(18638); 
InstantMessagingClient client = new InstantMessagingClient("(My IP Address)", 18638); 
} 

回答

1

,我發現了錯誤java.net.ConnectException:連接被拒絕。

這恰恰有一個意思。在您試圖連接的IP:端口上沒有任何內容正在監聽。

我試着在命令行上使用ping,並收到數據包,所以我知道它的工作。

你知道主機正在工作。無法證明您嘗試連接的端口或服務的任何信息。

我也嘗試使用telnet連接到我的IP地址,它給了我相同的連接拒絕錯誤。

出於同樣的原因。

我的代碼有問題嗎?

IP:端口錯誤或服務器根本沒有啓動。