2015-09-06 106 views
1

因此,我正在製作一個涉及客戶端/服務器連接的程序,並且無法讓他們工作。爲了嘗試和隔離問題,我做了兩個測試程序,試圖得到一個連接:Java Serversocket不接受連接

public static void main(String[] args) { 
    try { 
    System.out.println("here"); 
    Socket s = new Socket(IP, PORT); 
    System.out.println("sent"); 
    } 
    catch(Exception e) { 
    System.out.println("Client Error"); 
    } 

} 


public static void main(String[] args) { 
    try { 
    ServerSocket s = new ServerSocket(8921); 
    Socket a = s.accept(); 
    System.out.println("accepted"); 
    } 
    catch(Exception e) { 
    System.out.println("Server Error"); 
    } 

} 

的端口值是一個我選擇了隨機,所以如果有更好的方法來選擇一個,請讓我知道。 IP地址是機器的IPv4地址。我在不同的計算機上運行這些程序,並且打印都不被接受或發送但是,也不會打印任何錯誤消息,這會導致相信接受時出現問題?有誰知道如何解決這一問題?謝謝

+0

如果不打印一條消息或其他消息,則您的程序無法終止。 –

+0

對不起,過了一段時間客戶端程序將'放棄'並打印錯誤。 – TLF

+0

你的代碼適合我。也許你在運行服務器的計算機上有一個防火牆,用於阻止傳入的連接。 –

回答

-1

它不會打印任何內容,因爲s.accept()「偵聽到此套接字的連接並接受它。」 - JavaDoc

它必須仍在監聽,因此您的代碼不可訪問。