Подтвердить что ты не робот

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

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

В настоящее время лучше всего использовать основной Java API.

4b9b3361

Ответ 1

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

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

Ответ 2

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

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

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

Ответ 5

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

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

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

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

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

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

Ответ 8

"Head First Java" - отличная книга для начинающих, и они делают учебник по созданию простой чат-программы.

http://oreilly.com/catalog/9780596004651/