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

Страница 3 от 4

Създаване на сървъра гнезда

socket_bind ($ гнездо, $ адрес [, $ порт]);

Втората стъпка: да се създаде сокет за да слушат за трафика за опит да се свърже с него. Това се прави с помощта на socket_listen (функция):

Къде $ гнездо - контактът е обвързана и преди, че трябва да бъдат включени в proslushinanie. Предлаганата като опция параметър $ нерешени използва за създаване на ред, като се посочва максималния брой входящи връзки, които са поставени в режим на изчакване. Ако не е посочен този параметър, гнездото се опитва да се свърже получи отказ на услуга до контакта на сървъра не е налична. В резултат на тази функция връща булева стойност, която показва успеха на настройките на слушането на сокет сървър.

Третата и последна стъпка в създаването на сокет на сървъра - да се даде команда, за да приема входящи връзки. Това се прави socket_accept () функция:

Къде $ гнездо - обвързани гнездо включени в прослушването, която е да приема връзки.

При изпълнението на тази функция няма да се върне, докато едва след слушане на входящи връзки. След като бъде инсталиран, функцията връща нов ресурс на цокъла се използва за свързване. Ако определен параметър в контакта $ гнездо е конфигуриран като не-блокиране, socket_accept () функция е винаги веднага се връща лъжа.

Ресурсът на гнездо, върнат от socket_accept (), не може да се използва повторно, защото тя служи само една конкретна текущата връзка. Socket предадения й в параметър гнездо $ на, обаче, може да се използва повторно.

Обява под гнездото създаде прост сървър, който приема една връзка, не повече от 1024 байта вход и дисплеи този поток към потребителя.

Създаване на прост сокет сървър-базирани

На моя компютър, този скрипт е в папката на Денвър по пътя: C: \ уеб сървъри \ у дома \ app.loc \ WWW \ гнезда \ test.php
Сега, ако стартирате скрипта от командния ред, така Makar: C: \ уеб сървъри \ у дома \ app.loc \ WWW \ гнезда> PHP test.php, ще видим в следния команден ред:

Сървърът ще ни изпрати обратно на нашите една и съща заявка + заглавията:

В командния ред, ще видим новите данни

Както и нов вход ред - доказателства, че процесът е преминал. Той може също да се провери NETSTAT -а команда и Убуд, пристанището 4545 в списъка не присъства.

За създаване на сокет на сървъра, което слушате на пристанища под 1000, потребителят трябва да имате администраторски права на системата. Трябва също да се отбележи, че сценарият по-горе не се изключи, докато връзката е установена, което може да създаде впечатление за "висене".

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