我写了一个服务器类,我的客户端是我的浏览器。当我在浏览器中输入localhost:8082
时,打开了硬编码网站www.mmix.cs.hm.edu
。到现在为止还挺好。 一个网站通常有多个页面。无论我点击其他链接,我的服务器只能检索主页www.mmix.cs.hm.edu/index.html
。我希望能够导航到这些其他页面。任何人都可以看看我的代码,并告诉我如何继续?客户端 - 服务器应用程序Java
public static void main(String args[]) {
String fromClient = "www.mmix.cs.hm.edu";
try(ServerSocket welcomeSocket = new ServerSocket(8082)){
System.out.println("Server started, waiting for clients...");
while(true){
StringBuilder htmlCode = new StringBuilder();
try(Socket connectionSocket = welcomeSocket.accept();
DataOutputStream toClient = new DataOutputStream(connectionSocket.getOutputStream());
BufferedReader fromBrowser = new BufferedReader(new InputStreamReader(connectionSocket.getInputStream()))){
try(InputStream url = new URL("http://"+fromClient+"/index.html").openStream();
BufferedReader getUrl = new BufferedReader(new InputStreamReader(url))){
for(String line = getUrl.readLine(); line != null; line = getUrl.readLine()){
htmlCode.append(line);
}
String str = htmlCode.toString();
toClient.writeBytes(str);
//toClient.write("\r\n");
}
}
}
}
catch(IOException io){
io.printStackTrace();
}
}
考虑使用''而不是'URL'来直接将客户端连接中的数据传递到服务器。 '新插座(“www.mmix.cs.hm.edu”,80)'。这将是更容易,更干净。 –