Я хотел бы решить проблему, когда клиент отправляет слово на сервер, а сервер запускает текстовый файл и возвращает значение слова, набранного пользователем.Моя проблема в том, что когда набирается подходящее слово, я возвращаю значение слова совпадения, в то же время возвращаю обратно другое «Слово не найдено» (что является моим оператором управления).Поэтому я хотел бы просто вернуть значение слова, только если слово найдено и найдено
Вот мой код:
Серверная часть
Future {
//store local socket references for processing
val client = socket
try {
// Get a communication stream associated with the socket
val is = new BufferedReader(new InputStreamReader(client.getInputStream))
// Get a communication stream associated with the socket
val os = new PrintStream(client.getOutputStream)
val inFile = new File(filename)
val readFile = new Scanner(inFile)
var input : String = null;
while (true) {
// Read from input stream
var line: String = is.readLine() // read the word from client
println("The client send " + line)
while (readFile.hasNext()) {
input = readFile.nextLine()
println("From the file " + input)
if (input.contains(line)) {
os.println(input)
os.flush()
}
else{
os.println("Word not found")
}
}
}
} catch {
case e: Exception => e.printStackTrace
} finally {
// Close the connection, but not the server socket
client.close()
}
}
Клиентская часть
val is = new BufferedReader(new InputStreamReader(client.get.getInputStream))
val os = new PrintStream(client.get.getOutputStream) // write to server a strin
println("Please Input Ur word ")
val user = readLine
os.println(user)
while (true) {
var line: String = is.readLine() //receive string from server
println(line)
}
Мой текстовый файл отформатирован следующим образом:
супер-очень хорошо или приятно;отличный.