![]() |
![]() |
![]()
Post
#1
|
|
![]() Vice-Administrator serwera Grupa: Przyjaciele php.pl Postów: 395 Pomógł: 0 Dołączył: 7.08.2003 Skąd: Kielce Ostrzeżenie: (0%) ![]() ![]() |
Dawno tu nie pisałem ale nurtuje mnie jeden problem,
Swego czasu korzystałem ze skryptu Daemona napisanego w php przez Setha i dołączyłem sobie do niego obsługę i nasłuchiwanie socketów. Jednak miałem z tym 2 problemy 1) skrypt przy nasłuchiwaniu wykonywał odczyt z socketa w pętli nieskończonej co w dziwny sposób potrafiło zajechać procesor na maxa. Tu pojawia się pierwsze pytanie jak zoptymalizować skrypt, żeby zmniejszyć do minimum wykorzystanie procesora, a jednocześnie nie spowodować tego, że połączenie zostanie odrzucone (np sleep() ) Chyba że nie będzie i sleep tu się sprawdza. 2) skrypt otwiera tylko jeden socket na danym porcie i przyjmuje tylko jedno połączenie (z tego zrozumiałem tak jest to zaimplementowane w php) i dopiero po zakończeniu tego połączenia może ustanowić kolejne. Jakieś teoretyczne propozycje jak obsłużyć wiele połączeń? Narazie nie podaje kodu bo uważam te rozważania za bardziej teoretyczne niż prośbę o konkretne rozwiązania, choć przykłady funkcji które mógłbym zastosować są jak najbardziej pożądane. Pozdrawiam PMadej -------------------- |
|
|
![]() |
![]()
Post
#2
|
|
![]() Grupa: Przyjaciele php.pl Postów: 5 724 Pomógł: 259 Dołączył: 13.04.2004 Skąd: N/A Ostrzeżenie: (0%) ![]() ![]() |
Cytat socket_select -- Runs the select() system call on the given arrays of sockets with a specified timeout zwraca ci socket z ktorego mozesz odczytywac Cytat After the socket socket has been created using socket_create(), bound to a name with socket_bind(), and told to listen for connections with socket_listen(), this function will accept incoming connections on that socket. Once a successful connection is made, a new socket resource is returned, which may be used for communication resource socket_accept ( resource socket ) zwroci ci nowy socket po zaakceptoaniu polaczenia. -------------------- Nie lubię jednorożców.
|
|
|
![]()
Post
#3
|
|
![]() Vice-Administrator serwera Grupa: Przyjaciele php.pl Postów: 395 Pomógł: 0 Dołączył: 7.08.2003 Skąd: Kielce Ostrzeżenie: (0%) ![]() ![]() |
W manualu o socketach po przejrzeniu wszystkich funkcji z nimi związanych natrafiłem na świetny przykład który pozwoli mi zrozumieć działanie socketów w php i rozwiązać w 100% mój problem.
Dla zainteresowanych zamieszczam link do ww. przykładu. jest to czat na zasadzie broadcastu: przyklad -------------------- |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 14.08.2025 - 01:56 |