Java TCP if заявление - PullRequest
       4

Java TCP if заявление

1 голос
/ 29 декабря 2011

Для этого приложения от пользователя поступает команда, а сервер отправляет ответ. Оператор if по какой-то причине не работает и для каждого ввода выполняется sentance = "Unknown Command" + '\n';. Мне было интересно, что я делаю не так.

import java.io.*;
import java.net.*;

// SERVER

class StartingPoint {
    public static void main(String argv[]) throws Exception{

        double srvversion = 0.1;
        double cliversion = 0.1;

        String clientSentence;
        String sentance = null;
        String capitalizedSentence;

        //Commands cmds = new Commands();

        ServerSocket welcomeSocket = new ServerSocket(6789);
        System.out.println("Server Started");
        while (true) {

            Socket connectionSocket = welcomeSocket.accept();
            BufferedReader inFromClient = new BufferedReader(
                    new InputStreamReader(connectionSocket.getInputStream()));
            DataOutputStream outToClient = new DataOutputStream(
                    connectionSocket.getOutputStream());
            clientSentence = inFromClient.readLine();
            System.out.println("Received: " + clientSentence);
            capitalizedSentence = clientSentence.toUpperCase();


            if(capitalizedSentence == "VERSION"){
                sentance = "Current Server Version: " + srvversion
                        + " | Current Client Version: " + cliversion + '\n';
            }else{
                sentance = "Unknown Command" + '\n';
            }

            outToClient.writeBytes(sentance);
            System.out.println("Sent: " + sentance);
        }
    }
        }

Ответы [ 2 ]

2 голосов
/ 29 декабря 2011

Вы должны использовать метод .equals () для сравнения строк вместо использования ==.

Изменить

  if(capitalizedSentence == "VERSION"){

на

  if(capitalizedSentence.equals("VERSION")){
1 голос
/ 29 декабря 2011

Чтобы сравнить строки, вы должны использовать метод .equals() следующим образом:

String str1;
String str2;

if (str1.equals(str2)) // do something
else //do something else
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...