Java: лучшее место для начала изучения основ работы в сети

Я пытаюсь написать простую программу сетевого чата на Java. У меня почти нет сетевого опыта. Мне было интересно, на какие ресурсы я должен начать поиск (конечно, рядом с этим).

На данный момент было бы лучше придерживаться базового Java API.

Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
10
0
9 622
8
Перейти к ответу Данный вопрос помечен как решенный

Ответы 8

Ответ принят как подходящий

Я нашел отличный учебник по сетям и Java с собственного сайта Sun: http://download.oracle.com/javase/tutorial/networking/TOC.html

В разделе сокетов вы даже можете написать мини-демонстрацию чата клиент / сервер.

Nio или традиционный способ с ServerSocket или Разъем См. пакет java.net

Nio docs здесь.

Насколько известно оригинальному плакату, NIO поддерживает неблокирующий ввод-вывод, тогда как традиционная форма - нет. Блокирующий ввод-вывод является однопоточным; неблокирующий - многопоточный. Если вы передаете файлы через чат-клиент и по-прежнему хотите, чтобы пользователи могли печатать, NIO.

Dean J 10.12.2009 21:54

Java API от Sun и официальные руководства, вероятно, лучшее место, где можно намочить ноги.

Google - ваш друг. Найдите "руководство по программированию сокетов java" или что-то в этом роде, и вы получите множество результатов, в том числе предложенный zxcv, а также следующие:

http://www.javaworld.com/javaworld/jw-12-1996/jw-12-sockets.html

http://www.cafeaulait.org/books/jnp/javanetexamples/index.html

Это намного проще, чем вы думаете. Честно говоря, я бы просто начал просматривать javadocs для пакета nio. Они даже должны содержать мини-уроки и исходный код.

Кроме того, java.sun.com должен быть завален учебными пособиями.

Если вы не понимаете сокеты - что ж, я мог бы отправить вас по ссылке, но проще просто сказать вам - сокеты - это способ взаимодействия двух программ друг с другом. Это просто уникальный номер, который (в сочетании с вашим IP-адресом) дает вам уникальный путь к программе. Итак, если я «прослушиваю» порт (сокет) 1000, тогда другая программа подключается к порту 1000, все, что отправляет подключающаяся программа, получает прослушивающая программа.

Используйте высокий номер порта (скажем, выше 5000), потому что есть много программ, которые назначают свой собственный порт.

Так общается практически все на вашем компьютере.

Возможно, вы захотите прочитать действительно краткое введение в обмен данными через сокеты, если API все еще сбивает с толку.

Я рекомендую вам сначала изучить нетворкинг. Если у вас есть время, прочтите Книга Таненбаума, лучший справочник по сетевым технологиям. Если вам нужен быстрый леард, вот дорожная карта:

  • Уровни OSI
  • UDP и TCP / IP
  • Розетки
  • Широковещательная и многоадресная рассылка
  • Сетевая безопасность

Затем перейдите к Java: Socket, ServerSocket, DatagramSocket, RMI и т. д.

"Head First Java" - отличная книга для начинающих, и они делают руководство по созданию простой программы чата.
http://oreilly.com/catalog/9780596004651/

Вот довольно простой, легкий для чтения учебник по сети Java:

http://tutorials.jenkov.com/java-networking/index.html

Другие вопросы по теме