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

Нека започнем с теорията. Ако сте специален лекар (и не виждам никаква алгоритми в окото), тогава трябва да пропуснете тази част.

Алгоритъмът работи сървъра гнездо

Какво позволява на сървъра контакт. На какво основание тя работи. Сървъри, базирани на протокола за контакт, ни позволява да предлагаме много клиенти наведнъж. Освен това, ограничението за броя можете да се уточни (или дори премахване на това ограничение, тъй като това е направено по подразбиране). За всеки клиент-сървър, свързан отваря едно гнездо, чрез които можете да комуникирате с клиента. Също така е чудесно решение е да се създаде отделна връзка за всеки процес (Тема).

Нека разгледаме схемата по:
  • Определяне на St-в Порт и ServerType - към сървъра може да се установи връзка клиентите трябва да пристанище сървърът ще използва точно същата като на порта, използван от клиент (и обратно) на. ServerType собственост определя типа на връзката (за подробности виж по-долу);
  • Отваряне на контакта - отваряне на контакта и определения порт. Там се извършва автоматично стартиране свързване на очакванията на клиентите (Слушай);
  • връзка на клиента и комуникация с него - клиентът се свързва тук и комуникирате с него. Информация за тази стъпка може да се намери по-късно в тази статия и в статията за контакти (клиент);
  • Деактивирането на клиента - когато клиентът се изключва и затваря гнездото си връзка със сървъра;
  • Закриване на сървъра и контакта - Като администратор на отбора сървъра напуска, затваряне на всички отворени канали за контакт и за прекратяване връзки с клиенти, чакащи.

Трябва да се отбележи, че параграфи 3-4 се повтарят, т.е. Тези елементи се извършват за всяка нова връзка клиент.

КРАТКО ОПИСАНИЕ компонент TServerSocket

Тук ще разгледаме основните свойства, методи и събития TServerSocket компонент.

Socket - клас TServerWinSocket, чрез който можете да имате достъп до отворите канал контакт. След това ще разгледаме този имот в повече подробности, защото Това всъщност е една от основните. Тип: TServerWinSocket;
ServerType - тип сървър. Това може да отнеме една от двете стойности: stNonBlocking - синхронна работа с контакта на клиент. При този тип сървър, можете да работите с клиенти чрез събития и OnClientRead OnClientWrite. stThreadBlocking - асинхронен тип. отделен процес (Тема) е създаден за всеки клиент контакт канал. Тип: TServerType;
ThreadCacheSize - броят на клиентските процеси (конци), които ще бъдат кеширани от сървъра. Тук е необходимо да изберете средната стойност в зависимост от натовареността на сървъра ви. Кеширане се провежда, за да не се създава отделен процес всеки път, а не да убиват затворен контакт, и да ги оставя за по-нататъшна употреба. Тип: Integer;
Active - мярка за активната точка на данни, сървърът или не. Т.е. Всъщност, истинската стойност показва, че сървърът работи, и са готови да приемат клиенти, и False - сървърът е надолу. За да стартирате сървъра, просто трябва да зададете този имот на True. Тип: Булева;
Порт - номера на порта, за да се установят връзки с клиентите. Пристанището на сървъра и клиентите трябва да са едни и същи. Препоръчителни стойности от 1025 до 65 535, като 1-1024 - може да бъде заета от системата. Тип: Integer;
Service - низ посочване на услугата (FTP HTTP поп и др ....), Пристанището, които ще бъдат използвани. Това е уникален референтен съответния номер на порт различни стандартни протоколи. Тип: низ;

Open - Започва сървъра. В действителност, тази команда е идентичен с определянето на стойност на True Active собственост;
Затваряне - Спира сървъра. В действителност, тази команда е идентичен с определянето на стойност на False Active собственост.

OnClientConnect - възниква, когато настроите връзка за контакт на клиента и чака отговор от сървъра (OnAccept);
OnClientDisconnect - възниква, когато клиентът е изключен от канала за контакт;
OnClientError - се получава, когато текущата операция се провали, т.е. е възникнала грешка;
OnClientRead - възниква, когато клиентът изпраща berveru никакви данни. Достъпът до тези данни могат да бъдат достъпни чрез параметър peaedavaemy контакта: TCustomWinSocket;
OnClientWrite - се случва, когато на сървъра може да изпраща данни към клиента чрез цокъл
OnGetSocket - в събитието манипулатор, можете да редактирате параметрите ClientSocket;
OnGetThread - в събитието манипулатор, можете да определите уникален процес (Тема) за всеки отделен клиент канал, чрез задаване на желания SocketThread подзадачата TServerClientThread;
OnThreadStart. OnThreadEnd - възниква, когато подзадачата (процес, Тема) пуска или спира, съответно;
OnAccept - възниква, когато сървърът получи клиентът откаже или в комбинация;
OnListen - настъпва, когато сървърът преминава в режим на готовност връзки с клиенти.

TServerSocket.Socket (TServerWinSocket)

Практика и примери

А сега да разгледаме по-горе конкретния пример. Изтеглете готов код, като кликнете тук.

По този начин, ние считаме, много добър пример за работа с TServerSocket (този пример - най-визуална помощ за изучаване на този компонент). Изходният код по-долу разкрива отчитане на всички големи събития в сървъра, както и възможността за получаване и изпращане на текстови съобщения:

Пример 1: Дърводобив и проучване на сървъра, изпращане / получаване на съобщения чрез контакти.

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