Почему вот этот код не прошел (вилидатор долго думал и передумал)
public class Client {
protected Connection connection;
private volatile boolean clientConnected = false;
protected String getServerAddress() {
ConsoleHelper.writeMessage("Введите адрес сервера: ");
return ConsoleHelper.readString();
}
protected int getServerPort() {
ConsoleHelper.writeMessage("Введите порт сервера сервера: ");
return ConsoleHelper.readInt();
}
protected String getUserName() {
ConsoleHelper.writeMessage("Введите порт сервера сервера: ");
return ConsoleHelper.readString();
}
protected boolean shouldSendTextFromConsole() {
return true;
}
protected SocketThread getSocketThread() {
return new SocketThread();
}
protected void sendTextMessage(String text) {
try {
connection.send(new Message(MessageType.TEXT, text));
} catch (IOException e) {
ConsoleHelper.writeMessage("не возможно отправить сообщение");
clientConnected = false;
}
}
public static void main(String[] args) {
Client client = new Client();
client.run();
}
public void run() {
SocketThread socketThread = getSocketThread();
socketThread.setDaemon(true);
socketThread.run();
try {
synchronized (this) {
this.wait();
}
} catch (InterruptedException e) {
ConsoleHelper.writeMessage("Программа завершила свою работу аварийно");
System.exit(1);
}
if (clientConnected) {
ConsoleHelper.writeMessage("Соединение установлено. Для выхода наберите команду 'exit'.");
while (clientConnected) {
String str = ConsoleHelper.readString();
if (str.equalsIgnoreCase("exit"))
break;
else if (shouldSendTextFromConsole())
sendTextMessage(str);
}
}
else ConsoleHelper.writeMessage("Произошла ошибка во время работы клиента.");
}
public class SocketThread extends Thread {
}
}
а с этим все в порядке
public class Client {
protected Connection connection;
private volatile boolean clientConnected = false;
protected String getServerAddress(){
//make a request address of server of the user
ConsoleHelper.writeMessage("Введите адрес сервера: ");
return ConsoleHelper.readString();
}
protected int getServerPort(){
// make a request ports of server of the user
ConsoleHelper.writeMessage("Введите порт сервера сервера: ");
return ConsoleHelper.readInt();
}
protected String getUserName(){
// make a request name of user
ConsoleHelper.writeMessage("Введите порт сервера сервера: ");
return ConsoleHelper.readString();
}
protected boolean shouldSendTextFromConsole(){return true;}
protected SocketThread getSocketThread(){return new SocketThread();}
protected void sendTextMessage(String text){
try {
connection.send(new Message(MessageType.TEXT, text));
} catch (IOException e) {
ConsoleHelper.writeMessage("не возможно отправить сообщение");
clientConnected=false;
}
}
public static void main(String[] args){
Client client = new Client();
client.run();
}
public void run(){
SocketThread socketThread = getSocketThread();
socketThread.setDaemon(true);
socketThread.start();
try {
synchronized (this){
this.wait();
}
} catch (InterruptedException e) {
ConsoleHelper.writeMessage("произошла ошибка, программа будет закрыта");
System.exit(1);
}
if(clientConnected){
ConsoleHelper.writeMessage("Соединение установлено. Для выхода наберите команду ‘exit’");
while (clientConnected) {
String text = ConsoleHelper.readString();
if (text.equalsIgnoreCase("exit")) {
break;
}else if(shouldSendTextFromConsole()){
sendTextMessage(text);
}
}
} else {
ConsoleHelper.writeMessage("Произошла ошибка соединения");
}
}
public class SocketThread extends Thread{
}
}
они идентичны разница только в отправляемых сообщениях
и то по заданию должно отправляться "Соединение установлено. Для выхода наберите команду 'exit'." в конце точка. и валидатор пропустил а тот что сверху нет?