Я читал только версию этой книги на языке C, но, вероятно, версия Java будет столь же короткой и хорошей: TCP / IP Sockets в Java от Calvert и Donahoo: Практическое руководство для программистов . Даже если вы изучили программирование сокетов на C, вы, вероятно, могли бы довольно быстро адаптироваться к реализации Java.
Вот хороший пример главы из Java Network Programing . Также доступны некоторые другие части здесь , а также доступны образцы исходников .
Если вы решите купить эту книгу, я бы сказал, что этих глав на данный момент достаточно:
Дон пока не беспокоюсь о НИО; это довольно продвинуто.
Кроме того, я не знаю, смешиваю ли я что-то сейчас, но, насколько я понимаю , можно ли применить парадигму многопоточности к {{1} } программирование сети / сокета.
Да, действительно, это очень важный аспект. Вы поймете почему, прочитав образец главы .
Удачи!
Я думал об этом ДАВНО и после того, как попытался поставить проверку как в контроллерах, так и в моделях.... Наконец я пришел к выводу, что для многих моих заявок... проверка принадлежит модели, а не контроллеру. Почему? Потому что та же модель может в будущем использоваться различными другими вызовами контроллера или API... и тогда мне придется повторять процесс проверки снова и снова. Это нарушит DRY и приведет к множеству ошибок. Плюс философски его модель, которая взаимодействует с базой данных (или другим постоянным местом хранения) и, таким образом, является своего рода «последним призывом к алкоголю» место, чтобы сделать это в любом случае.
Поэтому я выполняю перевод в контроллере, а затем отправляю необработанные данные в модель для проверки и обработки. Конечно, я часто делаю php/mysql веб приложений и если вы делаете другие вещи результаты могут варьироваться. Надеюсь, это кому-то поможет.
-121--1628873-Я бы не рекомендовал использовать его. Вы никогда не знаете, станет ли ваш интерфейс одним днем абстрактных классов. Тогда вам придется переименовать каждое использование или просто придерживаться уродливого названного абстрактного класса с префиксом.
(Источник: Robert C. Martin - Agile Software Development: Principles, Patterns and Practices)
-121--2758814-Основные шаги, которые можно не читать в этом руководстве Программирование сокетов на Java . В этой модели большинство людей использовали один поток для обработки одного сетевого соединения.
В Java 1.4 NIO был представлен, это делает интро немного сложнее: Руководство по Java NIO .
NIO позволяет использовать селектор, который позволяет обрабатывать множество соединений в одном потоке, что приводит к повышению производительности.
Универсальной книги для такого рода обучения не существует. Лучше всего начать с собственного руководства Java по сокетам / потокам и т. Д. здесь .
Столкнувшись с проблемами, как только вы начнете реализацию, вы начнете учиться, желательно снова посетив SO и задав кучу конкретных вопросов по коду.
исходя из моего опыта и, на мой взгляд, когда вы хотите изучить программирование сокетов на уровне абстракции, обеспечиваемой Java Network API, и для любого языка для этого важно, вы также должны быть знакомы с вводом-выводом и потоками. есть много учебных пособий, я предлагаю вам взять книгу. просто мысль!