3
我必須編寫服務器應用程序,請求來自客戶端的問題並接收答案。這是我的客戶端代碼:Java套接字不接收數據
clientSocket = new Socket("localhost", 1234);
System.err.println("Client started");
//get questions
ObjectInputStream in = new ObjectInputStream(clientSocket.getInputStream());
Question q = (Question)in.readObject();
//send answer
PrintWriter out = new PrintWriter(clientSocket.getOutputStream());
out.print("a1");
out.flush();
和服務器代碼:
//sending questions
ObjectOutputStream out = new ObjectOutputStream(client.getOutputStream());
List<Question> quest = Questions.getInstance().getQuestions();
out.writeObject(quest.get(0));
out.flush();
//get answer
BufferedReader in = new BufferedReader(new InputStreamReader(client.getInputStream()));
String temp = null;
while ((temp = in.readLine()) == null) {}
String answer = temp;
問題發送成功,後來被客戶接受,但服務器永遠不會得到答案(無限循環,而讀臨時變量)。問題是什麼?
你調用'的out.print( 「A1」);'在客戶端上,但閱讀的線路使用'in.readLine在服務器上( )'。你不應該在客戶端使用'println()'寫出來,否則服務器永遠不會到達行的末尾? – CodeChimp
很確定這是問題......爲什麼不把它作爲答案發布,所以這就從沒有答案的列表中... ...? –