Найти в Дзене

Пакет java.net что ты такое?

Какой современный язык не может работать с сетью? Спросите вы, а может быть и не спросите, да и какая разница если из заголовка понятно что мы собираемся говорить о Java =) Попробуем разобрать некоторые классы пакета java.net и посмотреть что они могут. Разберем классы ServerSocket и Socket. Для этого напишем два мини приложения. Первое это Сервер который принимает сообщение "!ping" и отправляет ответ "!pong". Второе это клиент который отправляет непосредственно нужное сообщение. Сервер: Клиент: Запустим сначала сервер, точка входа метод main(String[] args) класса PongServer. После запуска в linux можно воспользоваться утилитой lsof, что бы посмотреть открытые сокеты и убедиться что наш сервер открыт для соединения и слушает порт 9090:
sudo lsof -nP -i | grep LISTEN Как видно порт 9090 открыт и сервер готов к приему сообщения: Для проверки Клиента напишем класс Connection: Запустим Connection. Как видим сервер ответил и тут же завершил работу: Как мы убедились совсем не сложно соз

Какой современный язык не может работать с сетью? Спросите вы, а может быть и не спросите, да и какая разница если из заголовка понятно что мы собираемся говорить о Java =)

Попробуем разобрать некоторые классы пакета java.net и посмотреть что они могут.

Разберем классы ServerSocket и Socket.

Для этого напишем два мини приложения. Первое это Сервер который принимает сообщение "!ping" и отправляет ответ "!pong". Второе это клиент который отправляет непосредственно нужное сообщение.

Сервер:

Сервер
Сервер

Клиент:

Клиент
Клиент

Запустим сначала сервер, точка входа метод main(String[] args) класса PongServer.

После запуска в linux можно воспользоваться утилитой lsof, что бы посмотреть открытые сокеты и убедиться что наш сервер открыт для соединения и слушает порт 9090:

sudo lsof -nP -i | grep LISTEN

Как видно порт 9090 открыт и сервер готов к приему сообщения:

-4

Для проверки Клиента напишем класс Connection:

-5

Запустим Connection. Как видим сервер ответил и тут же завершил работу:

-6

Как мы убедились совсем не сложно создать клиент серверное приложение используя стандартные классы java. Далее обсудим почему после одного запроса сервер завершает работу и как это исправить.

Исходный код https://github.com/Bla2Code/socketExample

Пы. Сы. В данном примере используется вывод в консоль System.out.println() только в ознакомительных целях, избегайте его использование в реальных проектах.