基本上我有一個客戶端,它將單詞列表發送到服務器。服務器刪除重複的單詞。我將「remmoved duplicate」這個單詞存儲在一個新的集合中,但是我無法將這個數據結構中的新單詞發回給客戶端。程序似乎卡在這個循環中,while((clientSentence = inFromClient.readLine())!= null)',然後我不能再把新的一組單詞寫回客戶端。任何人都可以幫我解決這個問題嗎?Java Sever發送單詞列表回到客戶端
誰能幫我這個請
這裏是服務器代碼:
import java.io.*;
import java.net.*;
import java.util.LinkedHashSet;
import java.util.Set;
class Server {
private static boolean isFinished;
public static void main(String argv[]) throws Exception
{
String clientSentence;
String capitalizedSentence;
ServerSocket welcomeSocket = new ServerSocket(6789);
Set<String> lines = new LinkedHashSet<String>(10000);
while (true) {
Socket connectionSocket = welcomeSocket.accept();
BufferedReader inFromClient = new BufferedReader(new InputStreamReader(
connectionSocket.getInputStream()));
DataOutputStream outToClient = new DataOutputStream(
connectionSocket.getOutputStream());
while ((clientSentence = inFromClient.readLine()) != null) {
capitalizedSentence = clientSentence.toUpperCase();
lines.add(capitalizedSentence);
}
for (String string : lines) {
outToClient.writeBytes(string);
}
}
}
}
客戶
import java.io.*;
import java.net.*;
import java.util.LinkedHashSet;
import java.util.Set;
public class Client {
public static void main(String argv[]) throws Exception
{
String sentence;
String modifiedSentence;
File myfile = new File("C:/Users/Tudor/Desktop/test.txt");
BufferedReader inFromUser = new BufferedReader(new FileReader(myfile));
Socket clientSocket = new Socket("localhost", 6789);
DataOutputStream outToServer = new DataOutputStream(
clientSocket.getOutputStream());
BufferedReader inFromServer = new BufferedReader(new InputStreamReader(
clientSocket.getInputStream()));
Set<String> lines = new LinkedHashSet<String>(10000);
while ((sentence = inFromUser.readLine()) != null) {
outToServer.writeBytes(sentence + "\n");
modifiedSentence = inFromServer.readLine();
lines.add(modifiedSentence);
System.out.println("FROM SERVER: " + modifiedSentence);
}
// for (String string : lines) {
// System.out.println(string);
// }
clientSocket.close();
}
}
這並不能解決問題,因爲循環仍然掛起。我試過用'\ n'和'\ r'和'\ r \ n' – user2219097
@ user2219097查看編輯 –
是的,我測試過了,它工作但在服務器端我有一組所有行,並且在執行完循環後,我想將集合中的所有內容發送到客戶端,但它只能在while循環內運行,而不能在 – user2219097