0
拋出的UnknownHostException。客戶端套接字無法找到服務器套接字。儘管有我下面的在線教程來適應客戶的Java &服務器之前,我真正開始與他們一起工作了相同的端口號
所有我想現在要做的就是啓動服務器,然後連接客戶端。這對客戶端和服務器來說只有幾行代碼,對我來說這一切看起來都很簡單,所以我不確定問題出在哪裏。
我跑我的服務器程序,然後運行我的客戶端程序,但客戶端套接字無法找到,即使它們具有相同的端口號某種原因,我的服務器插槽。
這是代碼。
服務器:
public class Server {
private ServerSocket serverSocket;
private int portNumber;
public Server(int portNumber){
this.portNumber=portNumber;
}
public void run() throws IOException {
serverSocket = new ServerSocket(portNumber);
System.out.println("server at port "+portNumber);
System.out.println("Waiting for client.");
Socket clientSocket = serverSocket.accept();
System.out.println("Connected.");
}
public static void main(String[] args) {
int portNumber = 9999;
try {
Server serverSocket = new Server(portNumber);
serverSocket.run();
}
catch(IOException e){
e.printStackTrace();
}
}
}
然後我的客戶端程序:
public class Client {
private int portNumber;
private String host;
Socket clientSocket;
public Client(int portNumber,String host){
this.portNumber=portNumber;
this.host=host;
}
public void connect() throws IOException, UnknownHostException {
System.out.println("Connecting to port "+portNumber);
clientSocket = new Socket(host,portNumber);
System.out.println("Connected");
}
public static void main(String arg[]){
Client clientSocket = new Client(9999,"host");
try {
clientSocket.connect();
}
catch(UnknownHostException e){
System.err.println("Can't connect to host");
}
catch (IOException e) {
System.err.println("Can't connet. "+e.getMessage());
}
}
}
UnknownHostException
當我運行客戶端程序被拋出。
我想我也跟着教程相當密切,但我不知道我的代碼是什麼問題。
我猜想它有什麼與我connect()
方法,因爲這就是異常被拋出,但我不能肯定地說。
任何想法?
,你是否嘗試連接到「localhost」作爲你的主機上運行的服務器,而同一臺電腦?否則,它可能是一個防火牆問題。 – Sesame
就是這樣! 我不認爲這個名字很重要,但它確實! 現在工作完美,謝謝! – user83676