Procházet zdrojové kódy

Микроправки под корректную работу клиента

Alec před 4 roky
rodič
revize
1e2ffc7515

binární
out/production/ExampleJavaList/com/company/Bank.class


binární
out/production/ExampleJavaList/com/company/Bill.class


binární
out/production/ExampleJavaList/com/company/Client$1.class


binární
out/production/ExampleJavaList/com/company/Client.class


binární
out/production/ExampleJavaList/com/company/SecretData.class


binární
out/production/ExampleJavaList/com/company/SendMessage.class


binární
out/production/ExampleJavaList/com/company/Server.class


binární
out/production/ExampleJavaList/com/company/UserMessage.class


binární
out/production/ExampleJavaList/com/company/UserMessageType.class


+ 17 - 5
src/com/company/Client.java

@@ -2,6 +2,15 @@ package com.company;
 
 import java.io.*;
 import java.net.Socket;
+import java.sql.Timestamp;
+
+class SendMessage implements Serializable {
+    public String msg;
+
+    public SendMessage(String msg) {
+        this.msg = msg;
+    }
+}
 
 public class Client extends Thread {
     private Socket socket;
@@ -41,7 +50,7 @@ public class Client extends Thread {
                     case BREAK_CONTRACT:
                         if (!authorized) {
                             System.out.println("Для совершения операций со счётом необходимо авторизоваться");
-                            objectOutputStream.writeChars("Действие не выполнено! Необходимо авторизоваться.");
+                            objectOutputStream.writeObject(new SendMessage("Действие не выполнено! Необходимо авторизоваться."));
                             objectOutputStream.flush();
                             continue;
                         }
@@ -50,7 +59,7 @@ public class Client extends Thread {
                     case DEPOSIT:
                         if (!authorized) {
                             System.out.println("Для совершения операций со счётом необходимо авторизоваться");
-                            objectOutputStream.writeChars("Действие не выполнено! Необходимо авторизоваться.");
+                            objectOutputStream.writeObject(new SendMessage("Действие не выполнено! Необходимо авторизоваться."));
                             objectOutputStream.flush();
                             continue;
                         }
@@ -59,7 +68,7 @@ public class Client extends Thread {
                     case WITHDRAW:
                         if (!authorized) {
                             System.out.println("Для совершения операций со счётом необходимо авторизоваться");
-                            objectOutputStream.writeChars("Действие не выполнено! Необходимо авторизоваться.");
+                            objectOutputStream.writeObject(new SendMessage("Действие не выполнено! Необходимо авторизоваться."));
                             objectOutputStream.flush();
                             continue;
                         }
@@ -69,11 +78,14 @@ public class Client extends Thread {
 
                 // Посылаем ответ с результатом работы для не обработанных действий
 
-                objectOutputStream.writeChars("Действие успешно выполнено");
+                objectOutputStream.writeObject(new SendMessage("Действие успешно выполнено"));
                 objectOutputStream.flush();
 
             } catch (ClassNotFoundException | IOException exception) {
-                System.out.println(exception.getMessage());
+                System.out.println(new Timestamp(System.currentTimeMillis()) + " Client disconnected: " + socket.getInetAddress().getHostAddress());
+                if (exception.getMessage() != null) {
+                    System.out.println(exception.getMessage());
+                }
                 interrupt();
             }
         }

+ 2 - 0
src/com/company/Server.java

@@ -3,6 +3,7 @@ package com.company;
 import java.io.IOException;
 import java.net.ServerSocket;
 import java.net.Socket;
+import java.sql.Timestamp;
 import java.util.ArrayList;
 
 public class Server {
@@ -20,6 +21,7 @@ public class Server {
         while (!interrupt) {
             try {
                 Socket clientSocket = socket.accept();
+                System.out.println(new Timestamp(System.currentTimeMillis()) + " Client connected: " + clientSocket.getInetAddress().getHostAddress());
                 Client client = new Client(clientSocket);
                 // Добавление клиента в список всех подключенных клиентов
                 clients.add(client);