Heim > Artikel > Backend-Entwicklung > PHP verwendet Beispiele, um zu verstehen, was Socket ist
Bitte verstehen Sie es anhand der Position der Socket-Abstraktionsschicht in der folgenden Abbildung. Socket ist eine zwischengeschaltete Software-Abstraktionsschicht für die Kommunikation zwischen der Anwendungsschicht und der TCP/IP-Protokollsuite. Es handelt sich um eine Reihe von Schnittstellen. Beim Entwurfsmuster handelt es sich um ein Fassadenmuster, das komplexe Implementierungen hinter Schnittstellen kapselt und nur eine Reihe einfacher Schnittstellen zum Aufrufen durch Benutzer bereitstellt. In gängigen Programmiersprachen sind diese Schnittstellen im Allgemeinen Erstellen, Binden, Abhören, Akzeptieren, Schreiben, Lesen, Schließen, Verbinden usw.
1. Rendering
2 >
Server: Server.php
Client: client.php
<?php set_time_limit(0); // 去掉时间限制 ob_implicit_flush(); // 开启强制刷新 // 1. 创建Socket $socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP); // 2. 绑定端口和IP socket_bind($socket, '127.0.0.1', 11279); // 3. 端口监听 socket_listen($socket); echo 'Server is listening!' . PHP_EOL; // 4. accept阻塞进程 $connect = socket_accept($socket); // 直到有连接进入,accept才会返回 echo 'Client [' . $connect . '] is accessing...' . PHP_EOL; // 5. 交互 socket_write($connect, 'Welcome, visitor! Now you can send message to the server.' . PHP_EOL); while ($connect) { // 获取请求 $request = socket_read($connect, 1024); echo 'Client ['. $connect .'] message: ' . $request; // 关闭连接 if($request == "bye" . PHP_EOL){ socket_shutdown($connect); break; } // 发送响应 $response = 'Your sended message: ' . $request; socket_write($connect, $response); } // 6. 销毁Socket socket_close($socket);
Das obige ist der detaillierte Inhalt vonPHP verwendet Beispiele, um zu verstehen, was Socket ist. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!