我正在學習如何在 Java 中制作客戶端/服務器程序的教程(這里是: https: //docs.oracle.com/javase/tutorial/networking/sockets/clientServer.html)我到了最后一部分套接字教程,您可以在其中制作客戶端/服務器程序,其中服務器講敲門笑話,客戶端響應:服務員:“敲敲!”客戶:“誰在那里?”服務器:“德克斯特?!笨蛻簦骸暗驴怂固厥钦l?”服務器:“有冬青樹枝的德克斯特大廳?!笨蛻簦骸吧胍??!蔽乙呀洀椭屏?KnockKnockClient.java、KnockKnockServer.java、KnockKnockProtocol.java 的代碼(我將這些文件命名為 Client.java、Server.java、Protocol.java),現在我要做的最后一部分是編譯和運行代碼. 我成功地編譯了協議和客戶端代碼,但是每當我嘗試編譯服務器代碼時,我都會收到一個看起來像第一個錯誤的錯誤我已經嘗試了所有方法,但找不到修復它的方法。我知道導致錯誤的代碼行試圖使用 KnockKnockProtocol.java 文件創建一個對象,但這就是我真正能弄清楚的全部內容。我檢查了拼寫,嘗試從 SocketsKnockKnockServer 包的父文件夾編譯代碼并且確實編譯了代碼,但是當我嘗試從父文件夾運行它時,我得到了一個看起來像第二個錯誤的不同錯誤。當我試圖從包文件夾運行它時,它給了我和以前一樣的錯誤。//the codepackage SocketsKnockKnockServer;import java.net.*;import java.io.*;public class Server { public static void main(String[] args) throws IOException { if (args.length != 1) { System.err.println("Usage: Java Server.java <port number>"); System.exit(1); } int portNumber = Integer.parseInt(args[0]); try ( ServerSocket serverSocket = new ServerSocket(portNumber); Socket clientSocket = serverSocket.accept(); PrintWriter out = new PrintWriter(clientSocket.getOutputStream(), true); BufferedReader in = new BufferedReader(new InputStreamReader(clientSocket.getInputStream())); ) { String inputLine, outputLine; //intiate conversation with client Protocol kkp = new Protocol(); outputLine = kkp.processInput(null); out.println(outputLine); while ((inputLine = in.readLine()) !=null) { outputLine = kkp.processInput(inputLine); out.println(outputLine); if (outputLine.equals("bye")) break; } }
添加回答
舉報
0/150
提交
取消