<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-comment">// Dieser Teil hat nichts mit dem Inhalt des Artikels zu tun,Kann jeder sein PHP Codebeispiel</span></span><span>
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"Beginnen Sie mit der Ausführung des Programms...\n"</span></span><span>;
</span><span><span class="hljs-variable">$time</span></span><span> = </span><span><span class="hljs-title function_ invoke__">date</span></span><span>(</span><span><span class="hljs-string">"Y-m-d H:i:s"</span></span><span>);
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"Aktuelle Zeit:<span class="hljs-subst">$time</span></span></span><span>\n";
</span><span><span class="hljs-variable">$randomNumber</span></span><span> = </span><span><span class="hljs-title function_ invoke__">rand</span></span><span>(</span><span><span class="hljs-number">1</span></span><span>, </span><span><span class="hljs-number">100</span></span><span>);
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"Zufällige Zahlengenerierung:<span class="hljs-subst">$randomNumber</span></span></span><span>\n";
</span><span><span class="hljs-meta">?></span></span><span>
<hr>
</span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-comment">// Textabschnitt:um socket_clear_error existieren UDP Und TCP Unterschiede in der Verwendung in Steckdosen</span></span><span>
<span class="hljs-comment">/**
* Titel:socket_clear_errorexistierenUDPUndTCPUnterschiede in der Verwendung in Steckdosen
*
* PHP Bereitgestellt socket_clear_error() Funktion,Wird verwendet, um den Fehlerstatus in einem bestimmten Socket zu löschen,und geben Sie den Fehlercode vor dem Löschen zurück。
* 它常Und socket_last_error() Verwendung mit,Für Fehlerhandhabung und Debuggen。
*
* UDP(User Datagram Protocol)Und TCP(Transmission Control Protocol)existieren网络通信模型上有显著差异,
* daher socket_clear_error() Die Nutzungsszenarien und -aufführungen sind ebenfalls unterschiedlich。
*
* 1. TCP Merkmale von Steckdosen
* - Verbindungsorientiert:existieren通信前需要建立连接(Drei Händedruck)。
* - Zuverlässige Übertragung:Automatisch übernehmen, wenn Pakete verloren gehen。
* - Der Fehler ist klar:Alle Sendungs- oder Empfangsfehler werden normalerweise sofort zurückgelegt。
*
* existieren TCP In der Steckdose,Wenn ein Schreibfehler auftritt、Probleme wie Verbindungsunterbrechung oder Lesen von Zeitüberschreitungen,
* socket_last_error() Der spezifische Fehlercode wird zurückgegeben。verwenden socket_clear_error() Diese Fehlercodes können gelöscht werden,
* Bietet einen sauberen Zustand für nachfolgende Operationen。Normalerweise verwendet für:
* - Versuchen Sie es erneut, nachdem Sie die Verbindungsausnahme gefangen haben
* - Aufräumen socket Status, um Restfehler zu vermeiden, die sich auf die nächste Kommunikation auswirken
*
* 2. UDP Merkmale von Steckdosen
* - Keine Verbindung:Vor dem Senden von Daten wird keine formale Verbindung hergestellt。
* - 不Zuverlässige Übertragung:Pakete können verloren gehen oder nicht in Ordnung sein,Die Vereinbarung selbst garantiert keine Lieferung。
* - Begrenzte Fehlerfeedback:In den meisten Fällen kann der spezifische Fehler beim Senden von Fehlern nicht direkt erhalten werden.。
*
* existieren UDP In der Steckdose,Auch wenn das Senden fehlschlägt(Zum Beispiel ist das Ziel unerreichbar),Viele Systeme geben Fehler nicht sofort an Sockets zurück。
* daher socket_last_error() Oft zurückkehren 0,或者仅existieren极少数情况(Wenn die lokale Netzwerkschnittstelle falsch ist)Gibt den Fehlercode zurück。
* Rechts UDP Sockelanruf socket_clear_error() 的效果也相Rechts有限,Hauptsächlich für:
* - Aufräumen本地套接字状态
* - stellen Sie sicher socket_last_error() Kehren zum sauberen Status zurück,Einfach zu vereinheitlichen Fehlerbehandlungslogik
*
* 3. verwenden示例
*/</span>
</span><span><span class="hljs-variable">$tcp_socket</span></span><span> = </span><span><span class="hljs-title function_ invoke__">socket_create</span></span><span>(AF_INET, SOCK_STREAM, SOL_TCP);
</span><span><span class="hljs-variable">$udp_socket</span></span><span> = </span><span><span class="hljs-title function_ invoke__">socket_create</span></span><span>(AF_INET, SOCK_DGRAM, SOL_UDP);
</span><span><span class="hljs-comment">// TCP Anschlussbeispiel</span></span><span>
@</span><span><span class="hljs-title function_ invoke__">socket_connect</span></span><span>(</span><span><span class="hljs-variable">$tcp_socket</span></span><span>, </span><span><span class="hljs-string">"127.0.0.1"</span></span><span>, </span><span><span class="hljs-number">8080</span></span><span>);
</span><span><span class="hljs-variable">$tcp_error_before</span></span><span> = </span><span><span class="hljs-title function_ invoke__">socket_last_error</span></span><span>(</span><span><span class="hljs-variable">$tcp_socket</span></span><span>);
</span><span><span class="hljs-title function_ invoke__">socket_clear_error</span></span><span>(</span><span><span class="hljs-variable">$tcp_socket</span></span><span>);
</span><span><span class="hljs-variable">$tcp_error_after</span></span><span> = </span><span><span class="hljs-title function_ invoke__">socket_last_error</span></span><span>(</span><span><span class="hljs-variable">$tcp_socket</span></span><span>);
</span><span><span class="hljs-comment">// UDP Beispiel senden</span></span><span>
@</span><span><span class="hljs-title function_ invoke__">socket_sendto</span></span><span>(</span><span><span class="hljs-variable">$udp_socket</span></span><span>, </span><span><span class="hljs-string">"Testdaten"</span></span><span>, </span><span><span class="hljs-title function_ invoke__">strlen</span></span><span>(</span><span><span class="hljs-string">"Testdaten"</span></span><span>), </span><span><span class="hljs-number">0</span></span><span>, </span><span><span class="hljs-string">"127.0.0.1"</span></span><span>, </span><span><span class="hljs-number">8081</span></span><span>);
</span><span><span class="hljs-variable">$udp_error_before</span></span><span> = </span><span><span class="hljs-title function_ invoke__">socket_last_error</span></span><span>(</span><span><span class="hljs-variable">$udp_socket</span></span><span>);
</span><span><span class="hljs-title function_ invoke__">socket_clear_error</span></span><span>(</span><span><span class="hljs-variable">$udp_socket</span></span><span>);
</span><span><span class="hljs-variable">$udp_error_after</span></span><span> = </span><span><span class="hljs-title function_ invoke__">socket_last_error</span></span><span>(</span><span><span class="hljs-variable">$udp_socket</span></span><span>);
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"TCP 错误码Aufräumen前:<span class="hljs-subst">$tcp_error_before</span></span></span><span>, Aufräumen后:</span><span><span class="hljs-subst">$tcp_error_after</span></span><span>\n";
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"UDP 错误码Aufräumen前:<span class="hljs-subst">$udp_error_before</span></span></span><span>, Aufräumen后:</span><span><span class="hljs-subst">$udp_error_after</span></span><span>\n";
<span class="hljs-comment">/**
* Zusammenfassen:
* - TCP 套接字的错误状态通常Und连接可靠性直接相关,socket_clear_error() 可以有效Aufräumen这些错误。
* - UDP Das Feedback des Socket -Fehlerstatus ist begrenzt,socket_clear_error() Hauptsächlich für保持一致的错误处理机制。
* - existieren实际开发中,Rechts TCP Und UDP verwenden socket_clear_error() Alles bedeutungsvoll,Aber TCP Der Effekt ist offensichtlicher。
*/</span>
</span><span><span class="hljs-meta">?></span></span><span>
</span></span>