Heim > Artikel > Backend-Entwicklung > Was ist der Unterschied zwischen PHP-Socket und Curl?
Der Unterschied zwischen PHP-Socket und Curl: 1. Socket ist eine Datenstruktur, die zur Kommunikation zwischen dem Server und dem Client verwendet werden kann. 2. Curl verwendet URL-Syntaxvorschriften zur Übertragung von Dateien und Daten und unterstützt viele Protokolle, z FTP, HTTP, TELNET usw.
Die Betriebsumgebung dieses Artikels: Windows 7-System, PHP-Version 7.1, DELL G3-Computer
Was ist der Unterschied zwischen PHP-Socket und Curl? Der Unterschied zwischen Curl und Socket in der PHP-Sitzung zwischen Server und Client. Der Server befindet sich immer im Überwachungsstatus. Wenn ein Client eine Verbindung zum Server herstellt, öffnet er einen Port, den der Server für eine Sitzung überwacht. Zu diesem Zeitpunkt empfängt der Server die Verbindungsanforderung des Clients und führt dann eine Schleife aus. Jetzt kann der Client Informationen an den Server senden, und der Server kann Informationen an den Client senden.
Um einen Socket zu generieren, benötigen Sie insgesamt drei Variablen:1, ein Protokoll 2, ein Socket-Typ
3, ein öffentlicher Protokolltyp Im Folgenden finden Sie eine detaillierte Erklärung dieser drei Variablen. Geben Sie eine an Grobes Verständnis (aber ich hoffe, Sie können sich daran erinnern, zu lachen)Protokoll: Beim Generieren eines Sockets stehen drei Protokolle zur Auswahl: 1. Dies ist ein weit verbreitetes Protokoll zum Generieren von Sockets. Es verwendet TCP- oder UDP-Protokollübertragung IPv4-Adresse
2. AF_INET6 Der Unterschied besteht offensichtlich darin, dass die IPv6-Adresse3 verwendet wird. Diese wird selten verwendet und wird nur auf Servern und Clients verwendet, die beide Unix sind oder Linux-Systeme.
Socket-Typ:
1. SOCK_STREAM Dieses Protokoll ist eine sequentielle, zuverlässige, datenvollständige Bytestream-basierte Verbindung. Dies ist der am häufigsten verwendete Socket-Typ. Dieser Socket verwendet TCP für die Übertragung.
2. SOCK_DGRAM Dieses Protokoll ist ein verbindungsloser Übertragungsaufruf mit fester Länge. Dieses Protokoll ist unzuverlässig und verwendet UDP für seine Verbindungen.
4. SOCK_RAW Dieser Socket-Typ bietet Einzelnetzwerkzugriff. Dieser Socket-Typ verwendet das öffentliche ICMP-Protokoll. (Ping und Traceroute verwenden dieses Protokoll)
5. SOCK_RDM Dieser Typ wird selten verwendet und ist auf den meisten Betriebssystemen nicht implementiert. Er wird für die Datenverbindungsschicht bereitgestellt und garantiert nicht die Reihenfolge der Datenpakete.
Öffentlicher Protokolltyp:
1. ICMP (Internet Control Message Protocol) Internet Control Message Protocol, wird hauptsächlich auf Gateways und Hosts verwendet, um Netzwerkbedingungen zu erkennen und Fehlermeldungen zu melden
2 TCP (Transmission Control Protocol) Transmission Control Protocol, es ist das am weitesten verbreitete Protokoll kann garantieren, dass das Datenpaket den Empfänger erreicht. Wenn zwischendurch ein Fehler auftritt, sendet dieses Protokoll das Datenpaket erneut.
Okay, Sie wissen jetzt, dass zum Generieren eines Sockets drei Elemente erforderlich sind, sodass socket_create() in PHP drei Parameter erfordert, ein Protokoll, einen Socket-Typ und ein öffentliches Protokoll. Wenn die Erstellung erfolgreich ist, gibt socket_create() einen Socket-Ressourcentyp zurück. Wenn sie nicht erfolgreich ist, erhalten Sie eine Fehlermeldung.
CURL
cURL ist ein Tool, das URL-Syntax zum Übertragen von Dateien und Daten verwendet. Es unterstützt HTTP, FTP und TELNET.
Warum cURL verwenden?
Denn wenn wir manchmal den Inhalt der Webseite flexibel abrufen möchten, z. B. Verarbeitung von Cookies, Überprüfung, Formularübermittlung, Datei-Upload usw. Dann müssen Sie cURL verwenden. Es heißt, dass PHP über eine leistungsstarke cURL-Bibliothek verfügt (weil ich nicht sagen kann, wo die Leistung liegt, also verwende ich „so heißt es“ lol).
1. Parametereinstellungen
3. Seiteninhalt abrufen oder bedienen Schauen Sie sich das einfache Beispiel unten an.<?php //初始化curl $ch = curl_init (); /* * 设置curl * php手册对于curl_setopt的解释为:设置对于curl传输的操作 * curl_setopt有三个参数:资源(一般为你建立的curl句柄)、操作(你将对这个句柄作何操作)、参数(对于这个操作你给出的参数) */ //例如你想对百度进行某些操作 curl_setopt ( $ch, CURLOPT_URL, "http://www.baidu.com"); //现在看来你要向百度post数据 curl_setopt ( $ch, CURLOPT_POST, 1 ); /*给出了要post的数据:$post_string,post的数据可以是一个文件, *那么你需要以@加上文件的全路径给出,或者你要post一些数据, *那么你可以按照数组形式给出,或者按照字符串给出, *如果你想按照字符串形式给出,请把字符串urlencode,嘿嘿 */ curl_setopt ( $ch, CURLOPT_POSTFIELDS, $post_string ); /* *把curl操作的结果以字符串形式 从curl_exec ()返回,而不是直接就输出了 */ curl_setopt ( $ch, CURLOPT_RETURNTRANSFER, true ); //得到操作返回结果 $result = curl_exec ( $ch ); //关闭curl句柄 curl_close ( $ch );Da Curl in PHP viele Operationen hat, ist es wahrscheinlich sehr schwierig, sich alle zu merken. Ich kann Ihnen jedoch nicht alle Dinge sagen, die Sie verwenden können. Holen Sie sich einige Informationen über den Server
<?php //初始化curl $ch = curl_init (); curl_setopt ( $ch, CURLOPT_URL, "http://www.baidu.com"); curl_setopt ( $ch, CURLOPT_RETURNTRANSFER, true ); curl_exec($ch); $info = curl_getinfo($ch); var_dump($info);Durch das obige Beispiel erhalten Sie die folgenden Informationen:
"url" //Ressourcennetzwerkadresse
"content_type" //Inhaltskodierung
"http_code" //HTTP-Statuscode
"header_size" //Header-Größe
"request_size" //Anfragegröße
"filetime" // Dateierstellung time
"ssl_verify_result" //SSL-Verifizierungsergebnis
"redirect_count" //Jump-Technologie
"total_time" //Gesamtaufgewendete Zeit
"namelookup_time" //DNS-Abfragezeit
"connect_time" //Zeit für das Warten auf die Verbindung
"pretransfer_time " //Zeitraubende Vorbereitung vor der Übertragung
"size_upload" //Größe der hochgeladenen Daten
"size_download" //Größe der heruntergeladenen Daten
"speed_download" //Download-Geschwindigkeit
"speed_upload" //Upload-Geschwindigkeit
"download_content_length ”/ /Die Länge des heruntergeladenen Inhalts
„upload_content_length“ // Die Länge des hochgeladenen Inhalts
„starttransfer_time“ // Die Zeit zum Starten der Übertragung
„redirect_time“ // Umleitungszeit
Mit Curl können Sie auch Folgendes tun Operationen:
1. Simulieren Sie den Post-Vorgang der Seite
2. Datei-Upload
3. HTTP-Authentifizierung
4. FTP-Upload
5. FQ-Technik
6. Rückruffunktion
ps:
Die oben genannte Hauptvoraussetzung für Curl ist Folgendes Ihr PHP ist installiert und kompiliert. Wenn Sie --with-curlwrappers hinzugefügt haben, können Sie mit der Operation phpinfo() überprüfen, ob Sie diese Erweiterungsbibliothek während der Kompilierung hinzugefügt haben.
Wenn diese Erweiterung geladen ist, sehen Sie etwa Folgendes:
Wenn Sie diese Erweiterung nicht haben, müssen Sie die Datei php.ini ändern und das Semikolon vor extension=php_curl.dll entfernen.
Okay, jetzt wissen wir, worum es bei Socket und Curl geht. Socket ist eine Datenstruktur, die für die Kommunikation zwischen dem Server und dem Client verwendet werden kann. Curl verwendet URL-Syntaxregeln zum Übertragen von Dateien und Daten und unterstützt viele Protokolle wie FTP, HTTP, TELNET usw.
Empfohlenes Lernen: „PHP-Video-Tutorial“
Das obige ist der detaillierte Inhalt vonWas ist der Unterschied zwischen PHP-Socket und Curl?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!