Skip to content

Latest commit

 

History

History
17 lines (13 loc) · 2.37 KB

File metadata and controls

17 lines (13 loc) · 2.37 KB

Многопоточный сокетный сервер

Это приложение представляет собой многопоточный сокетный сервер, способный принимать подключения от клиентов и обрабатывать их запросы асинхронно.

Структура и функциональность

Server.java

  • Метод main: входная точка программы. Использует ServerSocket для прослушивания подключений на заданном порту.
  • В бесконечном цикле вызывается метод accept() для ServerSocket, который блокируется, пока не будет получено новое подключение от клиента. После этого создается новый поток для обработки взаимодействия с клиентом.
  • Метод handleClient: создает BufferedReader для чтения входящих сообщений от клиента и в бесконечном цикле считывает сообщения. Полученное сообщение отправляется всем остальным клиентам через метод broadcastMessage.
  • Метод broadcastMessage: перебирает всех подключенных клиентов и отправляет полученное сообщение каждому клиенту, за исключением отправителя.
  • Блок finally закрывает сокет клиента после завершения взаимодействия.

Client.java

  • Клиентская программа создает сокет для подключения к серверу по заданному адресу и порту.
  • В методе main создается поток для приема сообщений от сервера, а основной поток отвечает за отправку сообщений серверу и чтение ввода пользователя с консоли.
  • При завершении ввода со стороны пользователя (путем ввода null), закрывается сокет и завершается соединение с сервером.