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




Я нашел отличный учебник по сетям и Java с собственного сайта Sun: http://download.oracle.com/javase/tutorial/networking/TOC.html
В разделе сокетов вы даже можете написать мини-демонстрацию чата клиент / сервер.
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 все еще сбивает с толку.
Я рекомендую вам сначала изучить нетворкинг. Если у вас есть время, прочтите Книга Таненбаума, лучший справочник по сетевым технологиям. Если вам нужен быстрый леард, вот дорожная карта:
Затем перейдите к Java: Socket, ServerSocket, DatagramSocket, RMI и т. д.
"Head First Java" - отличная книга для начинающих, и они делают руководство по созданию простой программы чата.
http://oreilly.com/catalog/9780596004651/
Вот довольно простой, легкий для чтения учебник по сети Java:
Насколько известно оригинальному плакату, NIO поддерживает неблокирующий ввод-вывод, тогда как традиционная форма - нет. Блокирующий ввод-вывод является однопоточным; неблокирующий - многопоточный. Если вы передаете файлы через чат-клиент и по-прежнему хотите, чтобы пользователи могли печатать, NIO.