Conversation
| Scanner scanner = new Scanner(System.in); | ||
| public void loop(){ | ||
| try { | ||
| Socket socket = new Socket(host, port); |
There was a problem hiding this comment.
В случае ошибок не закрываете соединение
| socket.close(); | ||
| break; | ||
| } | ||
| Message msg = new Message(1, line); |
There was a problem hiding this comment.
1 - это тип сообщения(для последующего разграничения), в данный момент есть два типа сообщения: служебный и сообщение для всех пользователей, 1 и 2 соответственно.
| import java.util.concurrent.atomic.AtomicLong; | ||
| import java.util.regex.*; | ||
|
|
||
| import one.nio.mem.SharedMemoryBlobMap; |
There was a problem hiding this comment.
Импорты лишние точно. Такое у вас не используется
| AdminThread admin = new AdminThread(); | ||
| admin.start(); | ||
| try { | ||
| while (true) { |
There was a problem hiding this comment.
А как остановить сервер корректно?
There was a problem hiding this comment.
через команду shutdown из потока admin(команда добавлена)
| } | ||
|
|
||
| static class WorkThread extends Thread { | ||
| Socket socket; |
There was a problem hiding this comment.
Стоит указывать уровень доступа, например private
| private int port; | ||
| static int freeThreads = 5; | ||
|
|
||
| synchronized static long setSynchonizedvalue(long value, int setvalue) { |
There was a problem hiding this comment.
Плохой паттерн, изменяемое из разных мест глобальное состояние (переменая freeThreads)
There was a problem hiding this comment.
В данной версии нет поддержки ограниченного количества потоков(она планировалось либо с глобальной переменной либо с ThreadPool)
| Socket socket; | ||
| long id; | ||
| String name; | ||
| String ShortName; |
| @Override | ||
| public void run() { | ||
| try { | ||
| out.writeObject(new Message(1, "connected")); |
There was a problem hiding this comment.
таймштамп должен быть текущим времнем
There was a problem hiding this comment.
1 - тип сообщения(выше написано подробнее)
| if (msg.GetTs() == 1) { | ||
| String line = msg.getData(); | ||
| line = ShortName + ">\t" + line; | ||
| msg.PutData(line); |
| static Logger log = LoggerFactory.getLogger(Server.class); | ||
|
|
||
| private int port; | ||
| static int freeThreads = 5; |
There was a problem hiding this comment.
Вашу проблему решил бы ThreadPool
No description provided.