<?xml version="1.0" encoding="UTF-8"?><rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" > <channel><title>Kommentare zu: Wie erstelle ich einen Socket-Server in PHP?</title> <atom:link href="http://www.phpgangsta.de/wie-erstelle-ich-einen-socket-server-in-php/feed" rel="self" type="application/rss+xml" /><link>http://www.phpgangsta.de/wie-erstelle-ich-einen-socket-server-in-php</link> <description>Ein PHP Blog mit Themen aller Art. Manchmal vergewaltige ich PHP...</description> <lastBuildDate>Wed, 08 Feb 2012 08:45:50 +0100</lastBuildDate> <sy:updatePeriod>hourly</sy:updatePeriod> <sy:updateFrequency>1</sy:updateFrequency> <generator>http://wordpress.org/?v=3.3.1</generator> <item><title>Von: raphaelniederer</title><link>http://www.phpgangsta.de/wie-erstelle-ich-einen-socket-server-in-php/comment-page-1#comment-513</link> <dc:creator>raphaelniederer</dc:creator> <pubDate>Thu, 12 Nov 2009 10:23:16 +0000</pubDate> <guid isPermaLink="false">http://www.phpgangsta.de/?p=310#comment-513</guid> <description>SUUUUPER! Es hat tatsächlich geklappt! Ich fass es noch einmal kurz zusammen:1. Auf http://downloads.php.net/pierre/ die Files php_win32service.dll und php_xdebug.dll herunterladen2. Die beiden DLL&#039;s in das \xampp\php\ext\-Verzeichnis kopieren3. und die php.ini mit folgenden Zeilen ergänzen: - zend_extension_ts = &quot;C:\xampp\php\ext\php_xdebug.dll&quot; - extension=php_win32service.dllFertig! So einfach wäre es :DVielen vielen Dank für deine Hilfe!</description> <content:encoded><![CDATA[<p>SUUUUPER! Es hat tatsächlich geklappt! Ich fass es noch einmal kurz zusammen:</p><p>1. Auf <a href="http://downloads.php.net/pierre/" rel="nofollow">http://downloads.php.net/pierre/</a> die Files php_win32service.dll und php_xdebug.dll herunterladen</p><p>2. Die beiden DLL&#8217;s in das \xampp\php\ext\-Verzeichnis kopieren</p><p>3. und die php.ini mit folgenden Zeilen ergänzen:<br /> &#8211; zend_extension_ts = &#8220;C:\xampp\php\ext\php_xdebug.dll&#8221;<br /> &#8211; extension=php_win32service.dll</p><p>Fertig! So einfach wäre es <img src='http://www.phpgangsta.de/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /></p><p>Vielen vielen Dank für deine Hilfe!</p> ]]></content:encoded> </item> <item><title>Von: Michael Kliewe</title><link>http://www.phpgangsta.de/wie-erstelle-ich-einen-socket-server-in-php/comment-page-1#comment-512</link> <dc:creator>Michael Kliewe</dc:creator> <pubDate>Thu, 12 Nov 2009 09:33:35 +0000</pubDate> <guid isPermaLink="false">http://www.phpgangsta.de/?p=310#comment-512</guid> <description>Bitte lade nur eine Zend Extension. Du überschreibst dort die Variable. Außerdem muß man Xdebug als TS-Zend-Extension laden, siehe http://www.phpgangsta.de/181[XDebug] ; Only Zend OR (!) XDebug zend_extension_ts=”C:\xampp\php\ext\php_xdebug.dll”Und lass den eaccelerator erstmal weg. Dort bitte aufpassen. Vielleicht gehts ja dann.</description> <content:encoded><![CDATA[<p>Bitte lade nur eine Zend Extension. Du überschreibst dort die Variable.<br /> Außerdem muß man Xdebug als TS-Zend-Extension laden, siehe <a href="http://www.phpgangsta.de/181" rel="nofollow">http://www.phpgangsta.de/181</a></p><p>[XDebug]<br /> ; Only Zend OR (!) XDebug<br /> zend_extension_ts=”C:\xampp\php\ext\php_xdebug.dll”</p><p>Und lass den eaccelerator erstmal weg. Dort bitte aufpassen. Vielleicht gehts ja dann.</p> ]]></content:encoded> </item> <item><title>Von: raphaelniederer</title><link>http://www.phpgangsta.de/wie-erstelle-ich-einen-socket-server-in-php/comment-page-1#comment-510</link> <dc:creator>raphaelniederer</dc:creator> <pubDate>Thu, 12 Nov 2009 08:29:45 +0000</pubDate> <guid isPermaLink="false">http://www.phpgangsta.de/?p=310#comment-510</guid> <description>Ich glaub ich geh noch drauf! Hab nun die win32_service.dll und xdebug heruntergeladen und in das ext-Verzeichnis kopiert.Auszug aus der DLL: [PECL] extension=php_dbase.dll extension=php_fbsql.dll extension=php_mime_magic.dll extension=php_ming.dll extension=php_msql.dll extension=php_pdf.dll ;extension=php_pdo_oci.dll ;extension=php_pdo_oci8.dllzend_extension = &quot;C:\xampp\php\ext\php_eaccelerator.dll&quot; zend_extension = &quot;C:\xampp\php\ext\php_xdebug.dll&quot;extension=php_win32service.dllIch hab auch die Einstellungen, die du in diesem (http://www.phpgangsta.de/181) Artikel hast noch ausprobiert. Ohne Erfolg. Weisst du denn auch nicht, was ich alles brauche, um das Script zum Laufen zu bringen?Fehlermeldung: Xdebug requires Zend Engine API version 220060519. The Zend Engine API version 220090626 which is installed, is newer. Contact Derick Rethans at http://xdebug.org for a later version of Xdebug.long(1073) refcount(2)</description> <content:encoded><![CDATA[<p>Ich glaub ich geh noch drauf! Hab nun die win32_service.dll und xdebug heruntergeladen und in das ext-Verzeichnis kopiert.</p><p>Auszug aus der DLL:<br /> [PECL]<br /> extension=php_dbase.dll<br /> extension=php_fbsql.dll<br /> extension=php_mime_magic.dll<br /> extension=php_ming.dll<br /> extension=php_msql.dll<br /> extension=php_pdf.dll<br /> ;extension=php_pdo_oci.dll<br /> ;extension=php_pdo_oci8.dll</p><p>zend_extension = &#8220;C:\xampp\php\ext\php_eaccelerator.dll&#8221;<br /> zend_extension = &#8220;C:\xampp\php\ext\php_xdebug.dll&#8221;</p><p>extension=php_win32service.dll</p><p>Ich hab auch die Einstellungen, die du in diesem (<a href="http://www.phpgangsta.de/181" rel="nofollow">http://www.phpgangsta.de/181</a>) Artikel hast noch ausprobiert. Ohne Erfolg.<br /> Weisst du denn auch nicht, was ich alles brauche, um das Script zum Laufen zu bringen?</p><p>Fehlermeldung:<br /> Xdebug requires Zend Engine API version 220060519.<br /> The Zend Engine API version 220090626 which is installed, is newer.<br /> Contact Derick Rethans at <a href="http://xdebug.org" rel="nofollow">http://xdebug.org</a> for a later version of Xdebug.</p><p>long(1073) refcount(2)</p> ]]></content:encoded> </item> <item><title>Von: Michael Kliewe</title><link>http://www.phpgangsta.de/wie-erstelle-ich-einen-socket-server-in-php/comment-page-1#comment-507</link> <dc:creator>Michael Kliewe</dc:creator> <pubDate>Wed, 11 Nov 2009 21:29:14 +0000</pubDate> <guid isPermaLink="false">http://www.phpgangsta.de/?p=310#comment-507</guid> <description>Das schrieb ich ja, du brauchst glaube ich die TS (Threadsafe VC6 Versionen).Nein, du brauchst nicht alle. Nur die, die du benötigst (win32_service.dll für den Dienst und die xdebug.dll für xXDebug)</description> <content:encoded><![CDATA[<p>Das schrieb ich ja, du brauchst glaube ich die TS (Threadsafe VC6 Versionen).</p><p>Nein, du brauchst nicht alle. Nur die, die du benötigst (win32_service.dll für den Dienst und die xdebug.dll für xXDebug)</p> ]]></content:encoded> </item> <item><title>Von: raphaelniederer</title><link>http://www.phpgangsta.de/wie-erstelle-ich-einen-socket-server-in-php/comment-page-1#comment-506</link> <dc:creator>raphaelniederer</dc:creator> <pubDate>Wed, 11 Nov 2009 21:12:20 +0000</pubDate> <guid isPermaLink="false">http://www.phpgangsta.de/?p=310#comment-506</guid> <description>Alles schön und gut, doch es gibt von jedem File zwei Versionen. (immer noch mit &quot;nts&quot; am Ende...) Welche brauch ich nun?Kleine Zusatzfrage: Brauch ich einfach alle win32-DLL&#039;s und php_xdebug.dll?Sry, möchte nur ganz sicher gehen... :D</description> <content:encoded><![CDATA[<p>Alles schön und gut, doch es gibt von jedem File zwei Versionen. (immer noch mit &#8220;nts&#8221; am Ende&#8230;)<br /> Welche brauch ich nun?</p><p>Kleine Zusatzfrage:<br /> Brauch ich einfach alle win32-DLL&#8217;s und php_xdebug.dll?</p><p>Sry, möchte nur ganz sicher gehen&#8230; <img src='http://www.phpgangsta.de/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /></p> ]]></content:encoded> </item> <item><title>Von: Michael Kliewe</title><link>http://www.phpgangsta.de/wie-erstelle-ich-einen-socket-server-in-php/comment-page-1#comment-505</link> <dc:creator>Michael Kliewe</dc:creator> <pubDate>Wed, 11 Nov 2009 20:37:25 +0000</pubDate> <guid isPermaLink="false">http://www.phpgangsta.de/?p=310#comment-505</guid> <description>Der Xampp 1.7.2 enthält PHP 5.3, dafür gibt es noch keine offiziellen PECL-Extensions für Windows. Habe auch damals schon ewig gesucht.Es gibt inoffizielle Binaries hier: http://downloads.php.net/pierre/Die haben bei mir funktioniert. Ich glaube, die Threadsafe VC6 Version funktionierte unter Apache (VC9 für IIS). Einfach mal probieren.</description> <content:encoded><![CDATA[<p>Der Xampp 1.7.2 enthält PHP 5.3, dafür gibt es noch keine offiziellen PECL-Extensions für Windows. Habe auch damals schon ewig gesucht.</p><p>Es gibt inoffizielle Binaries hier:<br /> <a href="http://downloads.php.net/pierre/" rel="nofollow">http://downloads.php.net/pierre/</a></p><p>Die haben bei mir funktioniert. Ich glaube, die Threadsafe VC6 Version funktionierte unter Apache (VC9 für IIS). Einfach mal probieren.</p> ]]></content:encoded> </item> <item><title>Von: raphaelniederer</title><link>http://www.phpgangsta.de/wie-erstelle-ich-einen-socket-server-in-php/comment-page-1#comment-504</link> <dc:creator>raphaelniederer</dc:creator> <pubDate>Wed, 11 Nov 2009 20:17:11 +0000</pubDate> <guid isPermaLink="false">http://www.phpgangsta.de/?p=310#comment-504</guid> <description>Ich hab es dann irgendwie zum Laufen gebracht. Nun hab ich das Script zu Hause ausprobiert und musste feststellen, dass der Xampp 1.7.2 gar keine php_win32ps.dll (und php_win32scheduler.dll, etc) enthählt.Fehlermeldung: Fatal error: Call to undefined function win32_create_service() in C:\xampp\htdoc s\service\index.php on line 3Ich hab mir die nötigen DLL&#039;s geholt und in das xampp\php\ext\ verzeichnis verschoben, wo auch alle anderen DLL&#039;s liegen. Im php.ini-File hab ich dann die Extensions geladen. Nach dem Neustart des Apache-Servers kamen dann folgende Meldungen:1. Meldung C:\xampp\php\ext\php_win32ps.dll ist entweder nicht für alle Ausführungen unter Windows vorgesehen oder enthält einen Fehler. Installieren Sie das Programm mit dem Originalinstallationsmedien erneut, oder wenden Sie sich an den Systemadministrator oder Softwarelieferanten, um Unterstützung zu erhalten.2. Meldung PHP Startup: Unable to load dynamic library &#039;\xampp\php\ext\php_win32ps.dll&#039; - %1 ist keine zulässige Win32-Anwendung..... ... ...Auszug aus der php.ini extension=php_win32ps.dll extension=php_win32scheduler.dll extension=php_win32service.dll extension=php_win32std.dll extension=php_xdebug.dllHab die DLL&#039;s von einer anderen Quelle heruntergeladen und wollte den Apache wieder neu starten, da kam dieser Fehler: PHP Startup: win32ps: Unable to initialize module Module compiled with module API=20071006 PHP compiled with module API=20090626 These options need to matchUnd das wieder für jede DLL...Kann mir hier jemand sagen, warum win32_create_service() nicht mehr standardmässig &quot;unterstützt&quot; wird?Puh, langer Kommentar, aber der musste einfach sein :D</description> <content:encoded><![CDATA[<p>Ich hab es dann irgendwie zum Laufen gebracht.<br /> Nun hab ich das Script zu Hause ausprobiert und musste feststellen, dass der Xampp 1.7.2 gar keine php_win32ps.dll (und php_win32scheduler.dll, etc) enthählt.</p><p>Fehlermeldung:<br /> Fatal error: Call to undefined function win32_create_service() in C:\xampp\htdoc<br /> s\service\index.php on line 3</p><p>Ich hab mir die nötigen DLL&#8217;s geholt und in das xampp\php\ext\ verzeichnis verschoben, wo auch alle anderen DLL&#8217;s liegen. Im php.ini-File hab ich dann die Extensions geladen. Nach dem Neustart des Apache-Servers kamen dann folgende Meldungen:</p><p>1. Meldung<br /> C:\xampp\php\ext\php_win32ps.dll ist entweder nicht für alle Ausführungen unter Windows vorgesehen oder enthält einen Fehler. Installieren Sie das Programm mit dem Originalinstallationsmedien erneut, oder wenden Sie sich an den Systemadministrator oder Softwarelieferanten, um Unterstützung zu erhalten.</p><p>2. Meldung<br /> PHP Startup: Unable to load dynamic library &#8216;\xampp\php\ext\php_win32ps.dll&#8217; &#8211; %1 ist keine zulässige Win32-Anwendung.</p><p>&#8230;.<br /> &#8230;<br /> &#8230;</p><p>Auszug aus der php.ini<br /> extension=php_win32ps.dll<br /> extension=php_win32scheduler.dll<br /> extension=php_win32service.dll<br /> extension=php_win32std.dll<br /> extension=php_xdebug.dll</p><p>Hab die DLL&#8217;s von einer anderen Quelle heruntergeladen und wollte den Apache wieder neu starten, da kam dieser Fehler:<br /> PHP Startup: win32ps: Unable to initialize module<br /> Module compiled with module API=20071006<br /> PHP compiled with module API=20090626<br /> These options need to match</p><p>Und das wieder für jede DLL&#8230;</p><p>Kann mir hier jemand sagen, warum win32_create_service() nicht mehr standardmässig &#8220;unterstützt&#8221; wird?</p><p>Puh, langer Kommentar, aber der musste einfach sein <img src='http://www.phpgangsta.de/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /></p> ]]></content:encoded> </item> <item><title>Von: raphaelniederer</title><link>http://www.phpgangsta.de/wie-erstelle-ich-einen-socket-server-in-php/comment-page-1#comment-502</link> <dc:creator>raphaelniederer</dc:creator> <pubDate>Tue, 10 Nov 2009 20:57:07 +0000</pubDate> <guid isPermaLink="false">http://www.phpgangsta.de/?p=310#comment-502</guid> <description>Danke, werd ich bei Gelegenheit mal ausprobieren. Das mit dem Messen (im Artikel) ist auch noch ganz interessant :DGruss</description> <content:encoded><![CDATA[<p>Danke, werd ich bei Gelegenheit mal ausprobieren. Das mit dem Messen (im Artikel) ist auch noch ganz interessant <img src='http://www.phpgangsta.de/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /></p><p>Gruss</p> ]]></content:encoded> </item> <item><title>Von: Michael Kliewe</title><link>http://www.phpgangsta.de/wie-erstelle-ich-einen-socket-server-in-php/comment-page-1#comment-501</link> <dc:creator>Michael Kliewe</dc:creator> <pubDate>Tue, 10 Nov 2009 20:12:36 +0000</pubDate> <guid isPermaLink="false">http://www.phpgangsta.de/?p=310#comment-501</guid> <description>Ich glaube, den Fehler hatte ich auch schonmal. Der kommt daher, dass du die xdebug.dll via extension=xdebug.dll eingebunden hast. Diese Extension darf aber nur als zend_extension_ts=”C:\xampp\php\ext\php_xdebug.dll” eingebunden werden, siehe hier beispielsweise: http://www.phpgangsta.de/181Schau da mal.</description> <content:encoded><![CDATA[<p>Ich glaube, den Fehler hatte ich auch schonmal. Der kommt daher, dass du die xdebug.dll via<br /> extension=xdebug.dll<br /> eingebunden hast. Diese Extension darf aber nur als<br /> zend_extension_ts=”C:\xampp\php\ext\php_xdebug.dll”<br /> eingebunden werden, siehe hier beispielsweise:<br /> <a href="http://www.phpgangsta.de/181" rel="nofollow">http://www.phpgangsta.de/181</a></p><p>Schau da mal.</p> ]]></content:encoded> </item> <item><title>Von: raphaelniederer</title><link>http://www.phpgangsta.de/wie-erstelle-ich-einen-socket-server-in-php/comment-page-1#comment-499</link> <dc:creator>raphaelniederer</dc:creator> <pubDate>Tue, 10 Nov 2009 13:32:23 +0000</pubDate> <guid isPermaLink="false">http://www.phpgangsta.de/?p=310#comment-499</guid> <description>Moment, ich habs rausgefunden. Ich hab noch $object-&gt;start() aufgerufen und dann den Dienst gestartet. Via telnet 127.0.0.1 33379 in der Kommandozeile aufgerufen. Alles schön und gut, doch eine Frage bleibt noch offen. Deine unterster Screenshot zeigt die &quot;Admin&quot;-Konsole. Die rufst du mit php -q chatserver.php auf. Ich hab das auch versucht (C:\xampp\php\php.exe -q socket.php). Folgende Meldung kommt dann:PHP Warning:  Xdebug MUST be loaded as a Zend extension in Unknown on line 0 PHP Warning:  Module &#039;xdebug&#039; already loaded in Unknown on line 0 bogus args, please use install/uninstall/runKannst mir hier jemand weiterhelfen?</description> <content:encoded><![CDATA[<p>Moment, ich habs rausgefunden. Ich hab noch $object-&gt;start() aufgerufen und dann den Dienst gestartet. Via telnet 127.0.0.1 33379 in der Kommandozeile aufgerufen. Alles schön und gut, doch eine Frage bleibt noch offen.<br /> Deine unterster Screenshot zeigt die &#8220;Admin&#8221;-Konsole. Die rufst du mit php -q chatserver.php auf. Ich hab das auch versucht (C:\xampp\php\php.exe -q socket.php). Folgende Meldung kommt dann:</p><p>PHP Warning:  Xdebug MUST be loaded as a Zend extension in Unknown on line 0<br /> PHP Warning:  Module &#8216;xdebug&#8217; already loaded in Unknown on line 0<br /> bogus args, please use install/uninstall/run</p><p>Kannst mir hier jemand weiterhelfen?</p> ]]></content:encoded> </item> <item><title>Von: raphaelniederer</title><link>http://www.phpgangsta.de/wie-erstelle-ich-einen-socket-server-in-php/comment-page-1#comment-498</link> <dc:creator>raphaelniederer</dc:creator> <pubDate>Tue, 10 Nov 2009 12:04:30 +0000</pubDate> <guid isPermaLink="false">http://www.phpgangsta.de/?p=310#comment-498</guid> <description>Hallo,Ich bin vielleicht etwas &quot;spät&quot;, aber ich habe noch ein bis zwei Fragen zu dem Thema hier...Du sagst im oberen Abschnitt: &quot;Dieser Chat-Server soll auch gleich als Dienst permanent laufen.&quot;Nun hab ich von deinem vorherigen Artikel den Dienst kopiert und ausprobiert. Er läuft soweit. Dann hab ich die Klasse hier kopiert und IN den Dienst hineingepackt. Zuunterst hab ich dann eine neue Instanz erstellt (von SocketChatServer)... Was muss ich aber noch machen und wie rufe ich den Chat-Server dann auf, dass ich Chatten kann?Gruss</description> <content:encoded><![CDATA[<p>Hallo,</p><p>Ich bin vielleicht etwas &#8220;spät&#8221;, aber ich habe noch ein bis zwei Fragen zu dem Thema hier&#8230;</p><p>Du sagst im oberen Abschnitt:<br /> &#8220;Dieser Chat-Server soll auch gleich als Dienst permanent laufen.&#8221;</p><p>Nun hab ich von deinem vorherigen Artikel den Dienst kopiert und ausprobiert. Er läuft soweit. Dann hab ich die Klasse hier kopiert und IN den Dienst hineingepackt. Zuunterst hab ich dann eine neue Instanz erstellt (von SocketChatServer)&#8230;<br /> Was muss ich aber noch machen und wie rufe ich den Chat-Server dann auf, dass ich Chatten kann?</p><p>Gruss</p> ]]></content:encoded> </item> <item><title>Von: Martin Kuckert</title><link>http://www.phpgangsta.de/wie-erstelle-ich-einen-socket-server-in-php/comment-page-1#comment-247</link> <dc:creator>Martin Kuckert</dc:creator> <pubDate>Tue, 01 Sep 2009 08:08:06 +0000</pubDate> <guid isPermaLink="false">http://www.phpgangsta.de/?p=310#comment-247</guid> <description>Afaik ist ersteres UDP und zweiteres TCP, bin mir aber nicht 100%ig sicher.</description> <content:encoded><![CDATA[<p>Afaik ist ersteres UDP und zweiteres TCP, bin mir aber nicht 100%ig sicher.</p> ]]></content:encoded> </item> <item><title>Von: Fitschi</title><link>http://www.phpgangsta.de/wie-erstelle-ich-einen-socket-server-in-php/comment-page-1#comment-216</link> <dc:creator>Fitschi</dc:creator> <pubDate>Tue, 25 Aug 2009 22:11:07 +0000</pubDate> <guid isPermaLink="false">http://www.phpgangsta.de/?p=310#comment-216</guid> <description>Hi Michael,Danke für die super Erklärung.Was mir allerdings nicht klar geworden ist durch das Manual, ist der unterschied von socket_recv und socket_read?</description> <content:encoded><![CDATA[<p>Hi Michael,</p><p>Danke für die super Erklärung.</p><p>Was mir allerdings nicht klar geworden ist durch das Manual, ist der unterschied von socket_recv und socket_read?</p> ]]></content:encoded> </item> <item><title>Von: Michael Kliewe</title><link>http://www.phpgangsta.de/wie-erstelle-ich-einen-socket-server-in-php/comment-page-1#comment-210</link> <dc:creator>Michael Kliewe</dc:creator> <pubDate>Tue, 25 Aug 2009 16:43:58 +0000</pubDate> <guid isPermaLink="false">http://www.phpgangsta.de/?p=310#comment-210</guid> <description>Hi,es hat damit zu tun, dass socket_select() das $read Array verändert, deshalb muss das geprüft werden.Man übergibt also dem socket_select() ein $read-Array, das überwacht werden soll. Wenn da nun etwas passiert (sich der Status ändert), gibt socket_select() die Anzahl der Sockets zurück, die sich geändert haben. Im $read-Array steht dann noch der Socket drin, der seinen Status geändert hat. Wenn das nun der &quot;Master Socket&quot; ist, können wir uns sicher sein, dass das ein neuer Client ist.In Zeile 63 prüfen wir ja auch nochmal genau das selbe mit allen Client-Sockets. Falls in $read also ein Client-Socket drin steht, hat ein Client was gesendet, und wir müssen dementsprechend reagieren.Beim nächsten Durchlauf der Endlosschleife füllen wir wieder das $read-Array mit dem Master-Socket und allen Client-Sockets und es geht von vorn los, socket_select überwacht wieder alle Sockets auf Veränderungen.Hoffe habe es halbwegs verständlich erklärt ;)http://de2.php.net/socket_select &quot;On exit, the arrays are modified to indicate which socket resource actually changed status.&quot;</description> <content:encoded><![CDATA[<p>Hi,</p><p>es hat damit zu tun, dass socket_select() das $read Array verändert, deshalb muss das geprüft werden.</p><p>Man übergibt also dem socket_select() ein $read-Array, das überwacht werden soll. Wenn da nun etwas passiert (sich der Status ändert), gibt socket_select() die Anzahl der Sockets zurück, die sich geändert haben. Im $read-Array steht dann noch der Socket drin, der seinen Status geändert hat.<br /> Wenn das nun der &#8220;Master Socket&#8221; ist, können wir uns sicher sein, dass das ein neuer Client ist.</p><p>In Zeile 63 prüfen wir ja auch nochmal genau das selbe mit allen Client-Sockets. Falls in $read also ein Client-Socket drin steht, hat ein Client was gesendet, und wir müssen dementsprechend reagieren.</p><p>Beim nächsten Durchlauf der Endlosschleife füllen wir wieder das $read-Array mit dem Master-Socket und allen Client-Sockets und es geht von vorn los, socket_select überwacht wieder alle Sockets auf Veränderungen.</p><p>Hoffe habe es halbwegs verständlich erklärt <img src='http://www.phpgangsta.de/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /></p><p><a href="http://de2.php.net/socket_select" rel="nofollow">http://de2.php.net/socket_select</a><br /> &#8220;On exit, the arrays are modified to indicate which socket resource actually changed status.&#8221;</p> ]]></content:encoded> </item> <item><title>Von: Fitschi</title><link>http://www.phpgangsta.de/wie-erstelle-ich-einen-socket-server-in-php/comment-page-1#comment-209</link> <dc:creator>Fitschi</dc:creator> <pubDate>Tue, 25 Aug 2009 16:18:03 +0000</pubDate> <guid isPermaLink="false">http://www.phpgangsta.de/?p=310#comment-209</guid> <description>Hi Michael,Eins ist mir noch nicht so ganz klar geworden:Warum wird mit if(in_array($this-&gt;socket, $read)) überprüft, ob eine neue Verbindung gestartet wurde wenn $read[0] = $this-&gt;socket vorher sowieso in Array aufgenommen wurde?</description> <content:encoded><![CDATA[<p>Hi Michael,</p><p>Eins ist mir noch nicht so ganz klar geworden:</p><p>Warum wird mit if(in_array($this-&gt;socket, $read)) überprüft, ob eine neue Verbindung gestartet wurde wenn $read[0] = $this-&gt;socket vorher sowieso in Array aufgenommen wurde?</p> ]]></content:encoded> </item> </channel> </rss>
<!-- Performance optimized by W3 Total Cache. Learn more: http://www.w3-edge.com/wordpress-plugins/

Minified using disk: basic
Page Caching using disk: basic
Database Caching using disk: basic
Object Caching 614/639 objects using disk: basic

Served from: www.phpgangsta.de @ 2012-02-08 14:37:38 -->
