ПредишенСледващото

"Клиент-сървър" е много често срещана и логично заявление архитектура. Струва ми се, че в днешно време рядко да се намери приложение самостоятелен клиент. Затова реших да се разгледа пример за изграждането на клиент-сървър приложения в Java без позоваване на конкретна задача. Първо кратко минава през класовата структура на заявлението, и след това погледнете в отделна изпълнението на всеки клас. В края на тази статия ще дам линк за изтегляне на архива с готова конструкция на заявлението. Така че нека да започнем.

Основните компоненти на прилагането

Основните компоненти са естествено на клиента и на самия сървър. Въпреки това, в допълнение те се нуждаят от повече помощ пакет от класовете, че в най-простия случай, ще отговарят за обмена на съобщения между клиента и сървъра. Минималната конфигурация, необходима за един клас: MessageReader / MessageWriter (чете / пише съобщение в потока на гнездото), MessageFactory (съдържащ идентификационните номера на всички възможни съобщения), набор от съобщения за заявки (заявка) и съобщение набор и отговори (Response). Всички те ще бъдат поставени в «ядро» пакет, който трябва да бъде както на клиента и сървъра.

Помислете за класовата структура на проекта, и след това преминете към изпълнението.

клиент-сървър приложение структура клас

Изходният код на клиента в Java

За да се справят с клиента много по-лесно, той по същество не прави нищо супер сложни, просто създава гнездо и се свързва със сървър гнездо с помощта на сухожилие хост: порт. Клиент за стартиране създава клас обект и започва своята работа. Цитирам изходния код без да импортирате, за всяко IDE свързване с тях (тези, които пишат в Java се знае точно това, което е много трудно без IDE). Освен това, в края на статията, можете да изтеглите файла на проекта.

ClientLauncher.java

Client.java

Под "логиката на приложението", искам да кажа на сървъра протокол съобщения, прехвърли всякакви данни за постигане на крайната цел.

Изходният код на сървъра в Java

Спомням си, че в ClientSession клас описва основния алгоритъм на работа с клиента, съобщения, данни, и така нататък. Класът Context съдържа обща информация за всички сървъри на клиентите, например, начина, по който да спаси трупи.

ServerLauncher.java

Server.java

Context.java

ClientSession.java

SessionsManager.java

Спомагателни класове от «ядро» пакет

Чрез поставянето на всички класове за подпомагане на една котка, класа на име отговаря точно на имената от списъка на "класовата структура" по-горе, може да се определи пакета от всеки клас.

Няколко думи за съобщения, запитване и отговор класовете са абстрактни и да действа като Класификатори мнения. С това много лесно да се направи разграничение между "нужди" и "отговорите". В този пример, аз дадох само едно съобщение - ръкостискане. който е отговорен за първия "ръкостискане" на клиента и сървъра. Всички по-нататъшната комуникация трябва да бъде вписан в класа MessageFactory примера на тези двамата.

заключение

Подкрепете проекта - споделете линка, благодаря!